@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-canadian-aboriginal-wght-normal-BORQZBIV.woff2)format("woff2-variations");unicode-range:U+2C7,U+2D8-2D9,U+2DB,U+307,U+1400-167F,U+18B0-18F5,U+25CC,U+11AB?}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-cherokee-wght-normal-jZCEk1jx.woff2)format("woff2-variations");unicode-range:U+300-302,U+304,U+30B-30C,U+323-324,U+330-331,U+13A0-13FF,U+AB70-ABBF}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-math-wght-normal-D2ofpfms.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-nushu-wght-normal-BbUpkz49.woff2)format("woff2-variations");unicode-range:U+2003,U+3000,U+3002,U+4E00,U+FE12,U+16FE1,U+1B170-1B2FB}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-symbols-wght-normal-D5nm3B0V.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-syriac-wght-normal-CspMfZeP.woff2)format("woff2-variations");unicode-range:U+303-304,U+307-308,U+30A,U+320,U+323-325,U+32D-32E,U+330-331,U+60C,U+61B-61C,U+61F,U+621,U+640,U+64B-655,U+660-66C,U+670,U+700-74F,U+860-86A,U+1DF8,U+1DFA,U+200C-200F,U+25CC,U+2670-2671}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-tifinagh-wght-normal-v-Vp3lOX.woff2)format("woff2-variations");unicode-range:U+2C7,U+301-302,U+304,U+306-307,U+309,U+323,U+331,U+200C-200D,U+202E,U+25CC,U+2D30-2D7F}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-vietnamese-wght-normal-BYkxoBzi.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-latin-ext-wght-normal-C0VXOeWd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-latin-wght-normal-CRMKv9uI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--header-bg:#1e293b;--header-sub:#334155;--bg-page:#f6f8fc;--bg-card:#fff;--border-color:#e2e8f0;--group-accent-blue:#93c5fd;--text-primary:#1e293b;--text-muted:#64748b;--text-light:#94a3b8;--green:#16a34a;--green-bg:#dcfce7;--green-text:#14532d;--red:#dc2626;--red-bg:#fee2e2;--red-text:#991b1b;--yellow:#eab308;--yellow-bg:#fef9c3;--yellow-text:#854d0e;--blue:#2563eb;--blue-hover:#1d4ed8;--blue-bg:#eff6ff;--blue-border:#bfdbfe;--orange-border:#fed7aa;--row-hover-bg:#f1f3f4;--row-active-bg:#e2e8f0;--fs-body:14px;--fs-secondary:13px;--fs-meta:12.5px;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #00000014;--shadow:0 1px 3px #0000001f, 0 1px 2px #00000012;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--transition:.2s ease;--font-family:"Google Sans Flex Variable", "Google Sans Flex", "Google Sans", Roboto, Helvetica, Arial, sans-serif;--font-mono:"Courier New", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--bg-page);color:var(--text-primary);min-height:100vh;font-size:14px;line-height:1.5}@media (width<=768px){input,select,textarea{font-size:16px!important}}.app-header{background:var(--header-bg);color:#fff;box-shadow:var(--shadow-md);z-index:100;justify-content:space-between;align-items:center;padding:14px 28px;display:flex;position:sticky;top:0}.header-brand{align-items:center;gap:14px;display:flex}.brand-icon{font-size:2rem;line-height:1}.brand-icon img{object-fit:contain;width:auto;height:2.4rem}.brand-text h1{letter-spacing:-.02em;font-size:1.2rem;font-weight:700}.header-right{align-items:center;gap:16px;display:flex}.header-time{font-family:var(--font-mono);color:var(--text-light);text-align:right;font-size:.78rem;line-height:1.6}.header-time-clock{font-size:1.05rem;font-weight:700}.tab-nav{background:var(--header-sub);top:var(--header-height,70px);z-index:99;border-bottom:2px solid #ffffff12;padding:0 24px;display:flex;position:sticky;overflow-x:auto}.tab-btn{color:#94a3b8;font-size:var(--fs-body);cursor:pointer;white-space:nowrap;transition:color var(--transition), border-color var(--transition), background var(--transition);background:0 0;border:none;border-bottom:3px solid #0000;outline:none;margin-bottom:-2px;padding:13px 18px;font-family:inherit;font-weight:400;text-decoration:none;display:block}.tab-btn:hover{color:#e2e8f0;background:#ffffff0f}.tab-btn.active{color:#fff;border-bottom-color:#3b82f6;font-weight:700}.tab-btn:focus-visible{outline-offset:-2px;outline:2px solid #3b82f6}.sidebar-compose-btn{display:none}.app-main{max-width:1700px;margin:0 auto;padding:24px 28px}@media (width>=1101px){#appShell{align-items:flex-start;display:flex}.tab-nav{width:240px;top:var(--header-height,70px);height:calc(100vh - var(--header-height,70px));background:var(--bg-page);border-bottom:none;border-right:1px solid var(--border-color);flex-direction:column;flex:0 0 240px;gap:2px;padding:16px 10px;position:sticky;overflow:hidden auto}.tab-btn{text-align:left;color:var(--text-muted);border-bottom:none;border-left:3px solid #0000;border-radius:8px;margin-bottom:0;padding:10px 14px}.tab-btn:hover{color:var(--text-primary);background:var(--row-hover-bg)}.tab-btn.active{background:var(--blue-bg);color:var(--blue);border-left-color:#3b82f6;font-weight:700}.app-main{flex:1;min-width:0;max-width:none;margin:0}.sidebar-compose-btn{background:var(--bg-card);border:1px solid var(--border-color);font-size:var(--fs-body);color:var(--text-primary);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:16px;align-items:center;gap:8px;width:fit-content;margin:0 4px 12px;padding:12px 16px;font-family:inherit;font-weight:600;text-decoration:none;display:flex}.sidebar-compose-btn:hover{box-shadow:var(--shadow)}}@media (width<=768px){.app-header{flex-direction:column;align-items:flex-start;gap:6px;padding:10px 14px}.header-brand{gap:10px;width:100%}.brand-icon img{height:1.9rem}.brand-text h1{white-space:normal;font-size:.85rem;line-height:1.35}.header-right{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px;width:100%}.header-time{font-size:.63rem;line-height:1.4}.tab-nav{white-space:nowrap;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:none;padding:0 4px;display:flex;overflow:auto hidden}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{white-space:nowrap;text-overflow:unset;flex:none;padding:10px 13px;font-size:.75rem;overflow:visible}.app-main{padding:12px}}@media (width<=480px){.brand-text h1{font-size:.78rem}.header-time{display:none}.tab-btn{flex:none;padding:9px 11px;font-size:.7rem}.app-main{padding:8px}}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border-color);overflow:hidden}.card+.card{margin-top:20px}.card-body{padding:20px}.form-group{margin-bottom:16px}.form-group label{margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}.form-group input[type=text],.form-group input[type=number],.form-group input[type=password],.form-group select,.form-group textarea{border:1px solid var(--border-color);border-radius:var(--radius);width:100%;color:var(--text-primary);transition:border-color var(--transition), box-shadow var(--transition);background:#fff;outline:none;padding:9px 13px;font-family:inherit;font-size:.88rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.btn{border-radius:var(--radius);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;outline:none;justify-content:center;align-items:center;gap:6px;padding:9px 18px;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.btn:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);background:#f1f5f9}.btn-secondary:hover{background:#e2e8f0}.btn-success{background:var(--green);color:#fff}.btn-success:hover{background:#15803d;transform:translateY(-1px)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-warning{background:var(--yellow);color:#1c1917}.btn-warning:hover{background:#ca8a04}.btn-sm{padding:5px 11px;font-size:.78rem}.btn-full{width:100%}.perm-badge{white-space:nowrap;border-radius:20px;align-items:center;padding:1px 7px;font-size:.69rem;font-weight:700;display:inline-flex}.perm-edit{color:#166534;background:#dcfce7;border:1px solid #86efac}.perm-view{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.perm-none{color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0}.perm-boss{color:#854d0e;background:#fef9c3;border:1px solid #fde047}.perm-assign{color:#6b21a8;background:#f3e8ff;border:1px solid #d8b4fe}.perm-disabled{background:var(--red-bg);color:var(--red-text);border:1px solid #fca5a5}.empty-state{text-align:center;color:var(--text-muted);padding:48px 20px}.empty-icon{opacity:.6;margin-bottom:12px;font-size:3rem}.empty-state p{font-size:.88rem;line-height:1.7}.view-only-notice{border-radius:var(--radius);color:#92400e;background:#fef3c7;border:1.5px solid #f59e0b;align-items:center;gap:10px;margin-bottom:18px;padding:10px 18px;font-size:.85rem;font-weight:500;display:flex}[data-view-only=true] input,[data-view-only=true] select,[data-view-only=true] textarea{color:#94a3b8!important;cursor:not-allowed!important;background:#f1f5f9!important;border-color:#e2e8f0!important}[data-view-only=true] button{opacity:.35!important;cursor:not-allowed!important}[data-view-only=true] button.view-only-allowed:not(:disabled),[data-view-only=true] .view-only-allowed input,[data-view-only=true] .view-only-allowed select{opacity:1!important;cursor:pointer!important}.modal-overlay{z-index:2000;background:#000000b8;justify-content:center;align-items:center;padding:20px;animation:.2s modalFadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-box{border-radius:var(--radius-xl);text-align:center;background:#fff;outline:none;width:100%;max-width:420px;padding:36px 40px 32px;animation:.25s cubic-bezier(.34,1.56,.64,1) modalSlideIn;box-shadow:0 24px 56px #00000073}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-box-icon{margin-bottom:12px;font-size:3rem;line-height:1}.modal-box-title{color:var(--text-primary);margin-bottom:8px;font-size:1.25rem;font-weight:800}.modal-box-header .modal-box-title{margin:0}.modal-box-desc{color:var(--text-muted);white-space:pre-line;margin-bottom:20px;font-size:.83rem;line-height:1.6}.modal-box-header{text-align:left;justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition);background:0 0;border:none;padding:4px 8px;font-size:1.1rem;line-height:1}.modal-close-btn:hover{color:var(--text-primary);background:#f1f5f9}.modal-box .form-group{text-align:left;margin-bottom:14px}.modal-box .form-group:last-of-type{margin-bottom:18px}.modal-error{color:var(--red);background:var(--red-bg);border-radius:var(--radius-sm);text-align:left;border:1px solid #fca5a5;margin-bottom:14px;padding:8px 12px;font-size:.8rem;font-weight:600}.modal-box-actions{justify-content:center;gap:10px;margin-top:4px;display:flex}.modal-overlay.confirm-overlay{z-index:9800}.dynform-overlay{z-index:9500;-webkit-backdrop-filter:blur(5px);background:#0f172a99;justify-content:center;align-items:center;padding:16px;animation:.15s dfo-in;display:flex;position:fixed;inset:0}@keyframes dfo-in{0%{opacity:0}to{opacity:1}}.dynform-card{background:#fff;border-radius:16px;outline:none;flex-direction:column;width:100%;max-width:920px;max-height:90vh;animation:.18s cubic-bezier(.34,1.56,.64,1) dfc-in;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000038,0 4px 16px #0000001a}@keyframes dfc-in{0%{opacity:0;transform:scale(.93)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.dynform-card--sm{max-width:420px}.dynform-card-hd{color:#fff;background:linear-gradient(135deg,#1d4ed8 0%,#0ea5e9 100%);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dynform-card-title{align-items:center;gap:12px;display:flex}.dynform-icon{font-size:1.5rem;line-height:1}.dynform-card-name{letter-spacing:-.01em;font-size:1rem;font-weight:700}.dynform-card-sub{opacity:.82;margin-top:2px;font-size:.74rem}.dynform-close{color:#fff;cursor:pointer;background:#ffffff2e;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:1rem;transition:background .15s;display:flex}.dynform-close:hover{background:#ffffff52}.dynform-card-body{scrollbar-width:thin;scrollbar-color:#bfdbfe #f8fafc;flex-direction:column;flex:1;gap:20px;padding:20px;display:flex;overflow-y:auto}.dynform-card-ft{background:#f8fafc;border-top:1px solid #e2e8f0;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:14px 20px;display:flex}.dynform-empty{text-align:center;color:var(--text-muted);padding:30px;font-size:.9rem}.toast-stack{z-index:10000;flex-direction:column;gap:8px;max-width:min(420px,100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius);box-shadow:var(--shadow-lg);white-space:pre-line;cursor:pointer;align-items:flex-start;gap:10px;padding:11px 14px;font-size:.85rem;font-weight:600;line-height:1.5;animation:.25s cubic-bezier(.34,1.56,.64,1) modalSlideIn;display:flex}.toast-success{color:#065f46;background:#d1fae5;border:1px solid #6ee7b7}.toast-error{background:var(--red-bg);color:var(--red-text);border:1px solid #fca5a5}.toast-info{background:var(--blue-bg);color:#1e40af;border:1px solid var(--blue-border)}@media (width<=768px){.card-body{padding:14px}.modal-box{padding:24px 18px 20px}.modal-box-actions{flex-direction:column}.modal-box-actions .btn{width:100%}.dynform-overlay{align-items:flex-end;padding:0}.dynform-card{border-radius:18px 18px 0 0;max-width:100%;max-height:95vh}.btn-full{border-radius:10px;min-height:48px;font-size:1rem}.toast-stack{max-width:none;bottom:12px;left:12px;right:12px}}@media (width<=480px){.card-body{padding:12px}.btn-sm{padding:4px 8px;font-size:.72rem}.modal-box{padding:20px 14px 18px}}.info-sheet{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow);font-size:var(--fs-body);color:var(--text-primary);padding:16px 20px;font-weight:400}.info-fields{grid-template-columns:210px minmax(0,1fr);margin:0;display:grid}.info-fields>dt,.info-fields>dd{border-bottom:1px solid var(--border-color);font-size:var(--fs-body);color:var(--text-primary);margin:0;padding:9px 0;font-weight:400}.info-fields>dt{padding-right:16px}.info-fields>dt label{font:inherit;color:inherit}.info-fields>dd{flex-direction:column;gap:4px;min-width:0;display:flex}.info-sheet-company{font-weight:700}.info-sheet-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.info-sheet .export-icon-bar{margin:0}.info-sheet .approval-textarea{width:100%;font-size:var(--fs-body)}.info-sheet-note{font-size:var(--fs-body);color:var(--text-primary);margin:12px 0 0}.info-sheet-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.info-sheet-actions:empty{display:none}@media (width<=720px){.info-fields{grid-template-columns:1fr}.info-fields>dt{color:var(--text-muted);border-bottom:0;padding-bottom:0}}.info-fields>dd[data-report]:empty:after,.info-sheet-line[data-records-line]:empty:after{content:"Không có biểu mẫu";color:var(--text-muted)}.info-low,.info-fields>dd.info-low{color:#dc2626;font-weight:700}.info-sheet+.info-sheet,.info-sheet+*>.info-sheet{margin-top:14px}.info-ok{color:#15803d;font-weight:600}.info-muted{color:var(--text-muted)}.info-sheet>.live-pending-banner{margin-bottom:10px}.login-overlay{z-index:9999;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0c4a6e 100%);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.login-box{border-radius:var(--radius-xl);text-align:center;background:#fff;width:100%;max-width:460px;margin:auto;padding:48px 44px 40px;animation:.45s cubic-bezier(.34,1.56,.64,1) loginSlideIn;box-shadow:0 30px 60px #00000080}@keyframes loginSlideIn{0%{opacity:0;transform:translateY(32px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.login-logo{margin-bottom:14px;font-size:4rem;line-height:1;animation:3s ease-in-out infinite logoPulse}.login-logo img{object-fit:contain;width:44%;height:auto}@keyframes logoPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.login-pretitle{color:var(--text-primary);text-wrap:balance;margin:6px 0 2px;font-size:1.08rem;font-weight:700;line-height:1.35}.login-title{color:var(--text-primary);letter-spacing:normal;margin-bottom:4px;font-size:1rem;font-weight:700}.login-subtitle{color:var(--text-primary);margin-bottom:6px;font-size:1rem;font-weight:500}.login-desc{color:var(--text-muted);margin-bottom:32px;font-size:.78rem;line-height:1.6}.login-form{flex-direction:column;gap:12px;display:flex}.login-input-wrap{position:relative}.login-input-icon{pointer-events:none;z-index:1;font-size:1.05rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.login-input-wrap input{border:2px solid var(--border-color);border-radius:var(--radius);letter-spacing:.08em;width:100%;transition:border-color var(--transition), box-shadow var(--transition);color:var(--text-primary);outline:none;padding:14px 18px 14px 46px;font-family:inherit;font-size:1rem}.login-input-wrap input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #2563eb1f}.login-error{color:var(--red);background:var(--red-bg);border-radius:var(--radius);border:1px solid #fca5a5;margin-top:4px;padding:9px 14px;font-size:.83rem;font-weight:600}.login-success{color:#065f46;border-radius:var(--radius);background:#d1fae5;border:1px solid #6ee7b7;margin-top:4px;padding:9px 14px;font-size:.83rem;font-weight:600}.login-footer{color:var(--text-light);flex-direction:column;align-items:center;gap:6px;margin-top:20px;font-size:.74rem;line-height:1.6;display:flex}.login-switch-btn{color:var(--blue);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.82rem;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s}.login-switch-btn:hover{-webkit-text-decoration-color:var(--blue);text-decoration-color:var(--blue)}.session-info{align-items:center;gap:10px;display:flex}.role-badge{color:#fff;white-space:nowrap;background:#ffffff1f;border:1px solid #fff3;border-radius:20px;align-items:center;padding:5px 14px;font-size:.8rem;font-weight:700;display:inline-flex}.btn-logout{color:#fca5a5;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);white-space:nowrap;background:#dc262626;border:1px solid #dc262666;padding:6px 14px;font-family:inherit;font-size:.78rem;font-weight:600}.btn-logout:hover{color:#fef2f2;background:#dc26264d}.btn-change-pwd{color:#93c5fd;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);white-space:nowrap;background:#2563eb1f;border:1px solid #2563eb59;padding:6px 12px;font-family:inherit;font-size:.76rem;font-weight:600}.btn-change-pwd:hover{color:#bfdbfe;background:#2563eb40}@media (width<=768px){.session-info{flex-wrap:wrap;gap:5px}.role-badge{padding:3px 9px;font-size:.7rem}.btn-change-pwd,.btn-logout{padding:4px 9px;font-size:.68rem}.login-box{padding:32px 18px 24px}.login-title{font-size:1rem}}.member-form-grid{grid-template-columns:1fr 1fr;align-items:start;gap:28px;display:grid}.member-form-col,.member-list-col{flex-direction:column;display:flex}.member-sub-title{color:var(--text-primary);border-bottom:2px solid var(--border-color);margin-bottom:16px;padding-bottom:8px;font-size:.9rem;font-weight:700}.perm-table{border:1px solid var(--border-color);border-radius:var(--radius);margin-top:4px;overflow:hidden}.perm-row{border-bottom:1px solid var(--border-color);grid-template-columns:1fr 130px 130px;align-items:center;display:grid}.perm-row:last-child{border-bottom:none}.perm-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:#f1f5f9;font-size:.73rem;font-weight:700}.perm-cell{padding:9px 12px}.perm-tab-col{color:var(--text-primary);font-size:.83rem;font-weight:600}.perm-chk-col{text-align:center}.perm-chk-col input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--blue)}.member-list{flex-direction:column;gap:6px;display:flex}.member-list-item{border:1px solid var(--border-color);border-left:4px solid var(--group-accent-blue);border-radius:var(--radius);transition:background var(--transition);background:#f8fafc;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.member-list-item:hover{background:#f1f5f9}.member-list-item--disabled{border-left-color:#fca5a5}.member-list-item--disabled .member-list-name{color:var(--text-muted)}.member-list-info{flex-direction:column;gap:3px;min-width:0;display:flex}.member-list-name{font-weight:700;font-size:var(--fs-body);color:var(--text-primary)}.member-list-username{font-size:var(--fs-meta);color:var(--text-muted);font-family:var(--font-mono)}.member-perms{flex-wrap:wrap;gap:5px;margin-top:7px;display:flex}.member-perm-chip{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#f8fafc;align-items:center;gap:4px;padding:2px 7px;font-size:.72rem;display:flex}.member-perm-tab{color:var(--text-muted);font-size:.71rem;font-weight:600}.member-special-row{flex-wrap:wrap;gap:6px;margin-bottom:2px;display:flex}.member-join-date{color:var(--text-light);font-size:.72rem}.member-list-btns{flex-direction:column;flex-shrink:0;gap:5px;display:flex}.member-empty{padding:28px 16px}.member-form-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.pending-section-header{border-bottom:2px solid #fde68a;flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:14px;padding-bottom:10px;display:flex}.pending-section-title{color:#92400e;margin:0;font-size:1rem;font-weight:700}.pending-section-subtitle{color:var(--text-muted);font-size:.77rem}.pending-member-card{border-radius:var(--radius);background:#fffbeb;border:1px solid #fde68a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;padding:12px 16px;display:flex}.pending-member-card:last-child{margin-bottom:0}.pending-member-info{flex-direction:column;gap:3px;display:flex}.pending-member-name{color:var(--text-primary);font-size:.9rem;font-weight:700}.pending-member-username{font-size:.74rem;font-family:var(--font-mono);color:var(--text-muted)}.pending-member-date{color:#a16207;font-size:.72rem}.pending-member-actions{flex-wrap:wrap;flex-shrink:0;gap:7px;display:flex}.member-form-col input[readonly]{color:var(--text-muted);cursor:default;background:#f8fafc;border-color:#e2e8f0}.special-perms-section{border:1px solid var(--border-color);border-radius:var(--radius);background:#f8fafc;margin-top:14px;margin-bottom:14px;padding:14px 16px}.perm-special-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-size:.78rem;font-weight:700}.special-perm-row{border-bottom:1px solid var(--border-color);cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 0;display:flex}.special-perm-row:last-child{border-bottom:none;padding-bottom:0}.special-perm-row input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--blue);flex-shrink:0}.special-perm-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.45}.special-perm-label{color:var(--text-primary);font-size:.85rem;font-weight:600}.perm-hint{color:var(--text-muted);font-size:.72rem;font-style:italic}.special-perm-subrow{flex-wrap:wrap;align-items:center;gap:10px;padding:6px 0 10px 26px;display:flex}.member-scope-list{flex-direction:column;gap:8px;max-height:360px;display:flex;overflow-y:auto}.member-scope-row{cursor:pointer;align-items:center;gap:8px;font-size:.85rem;display:flex}.temp-password{margin-bottom:18px;font-size:.88rem;line-height:1.7}.temp-password-value code{font-family:var(--font-mono);color:var(--blue);background:var(--blue-bg);border:1px solid var(--blue-border);border-radius:var(--radius-sm);-webkit-user-select:all;user-select:all;padding:2px 10px;font-size:1.15rem;font-weight:700}.temp-password-hint{color:var(--text-muted);margin-top:8px;font-size:.8rem}@media (width<=1100px){.member-form-grid{grid-template-columns:1fr}}@media (width<=768px){.perm-row{grid-template-columns:1fr 80px 80px}.perm-cell{padding:8px 5px}.perm-tab-col{font-size:.74rem}}@media (width<=480px){.perm-row{grid-template-columns:1fr 60px 60px}}.member-sub-title-disabled{color:var(--text-muted);margin-top:24px}.card-header{border-bottom:1px solid var(--border-color);background:#f8fafc;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.card-header h3{margin:0;font-size:.95rem;font-weight:700}.card-header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.hidden{display:none!important}.form-switch-row{flex-direction:column;gap:4px;display:flex}.switch-label{cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:inline-flex}.form-group .switch-label{margin-bottom:0}.switch-checkbox{opacity:0;width:0;height:0;position:absolute}.switch-track{background:#cbd5e1;border-radius:999px;flex-shrink:0;width:36px;height:20px;transition:background .2s;display:inline-block;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch-checkbox:checked+.switch-track{background:var(--blue)}.switch-checkbox:checked+.switch-track:after{transform:translate(16px)}.switch-checkbox:focus-visible+.switch-track{outline-offset:2px;outline:2px solid #3b82f6}.form-btn-row{gap:8px;margin-bottom:4px;display:flex}.config-list{flex-direction:column;gap:8px;margin-top:18px;display:flex}.config-list-item{border:1px solid var(--border-color);border-radius:var(--radius);border-left:4px solid var(--group-accent-blue);background:#f8fafc;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}a.config-list-item{color:inherit;cursor:pointer;text-decoration:none}a.config-list-item:hover{background:#f1f5f9}.config-menu{margin-top:0}.editing-highlight{box-shadow:0 0 0 2px #3b82f633;background:var(--blue-bg)!important;border-color:#3b82f6!important}.item-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.item-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.item-sub{color:var(--text-muted);font-size:.72rem}.item-actions{flex-shrink:0;gap:6px;display:flex}.config-empty{color:var(--text-muted);margin-top:8px;font-size:.83rem}.chevron{color:var(--text-light);font-size:.8rem;transition:transform .2s;display:inline-block}.chevron.open{transform:rotate(180deg)}.drag-handle{cursor:grab;color:var(--text-light);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;font-size:1rem;line-height:1}.drag-handle:hover{color:var(--text-muted)}.drag-handle:focus-visible{outline-offset:2px;border-radius:3px;outline:2px solid #3b82f6}.config-list-item.dragging,.sub-test-wrap.dragging,.branch-input-row.dragging{opacity:0}[data-view-only=true] .drag-handle{cursor:not-allowed}.product-list-item{flex-direction:column;align-items:flex-start;gap:0;padding:0;overflow:hidden}.product-accordion-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;transition:background var(--transition);align-items:center;gap:8px;padding:10px 14px;display:flex}.product-accordion-toggle:hover{background:#f1f5f9}.product-accordion-toggle .item-name{flex:1}.product-accordion-body{width:100%}.product-accordion-body .st-list-with-tmpl{padding:0 14px 10px}.product-list-item.is-hidden .item-name{color:var(--text-muted)}.product-hidden-badge{color:#64748b;vertical-align:middle;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;align-items:center;margin-left:6px;padding:1px 7px;font-size:.69rem;font-weight:700;display:inline-flex}.wt-has-badge{color:var(--green);vertical-align:middle;cursor:default;-webkit-user-select:none;user-select:none;margin-left:4px;font-size:.7rem}.eq-badge-row{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.eq-product-badge{color:#1d4ed8;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;align-items:center;gap:3px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.eq-product-all{color:#15803d;background:#f0fdf4;border-color:#86efac}.eq-product-none{color:#c2410c;border-color:var(--orange-border);background:#fff7ed}.eq-no-product-warn{border:1px solid var(--orange-border);background:#fff7ed;border-radius:8px;margin-top:8px;padding:8px 12px}.eq-no-product-warn .perm-hint{color:#c2410c;margin:0 0 6px}.eq-product-picker{flex-direction:column;gap:6px;display:flex}.eq-prod-tag{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;align-items:center;gap:6px;width:fit-content;padding:3px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.eq-prod-remove{cursor:pointer;color:#1d4ed8;opacity:.7;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.eq-prod-remove:hover{opacity:1}.eq-prod-add-row{align-items:center;gap:6px;display:flex}.eq-prod-select{border:1px solid var(--border-color);background:#fff;border-radius:6px;flex:1;padding:5px 8px;font-family:inherit;font-size:.83rem}.eq-prod-empty{color:#15803d;background:#f0fdf4;border:1px solid #86efac;border-radius:20px;width:fit-content;padding:3px 10px;font-size:.78rem;font-weight:600}.sub-test-inputs{flex-direction:column;gap:10px;margin-bottom:8px;display:flex}.sub-test-wrap{border:1px solid var(--border-color);border-left:3px solid var(--group-accent-blue);border-radius:var(--radius);background:#f8fafc;padding:10px 12px 8px}.sub-test-input-row,.branch-input-row{grid-template-columns:auto 1fr 1fr auto;align-items:center;gap:8px;display:grid}.sub-test-input-row input{border:1px solid var(--border-color);border-radius:var(--radius);outline:none;padding:7px 11px;font-family:inherit;font-size:.82rem}.branch-input-row input{border:1px solid var(--border-color);border-radius:var(--radius);background:#fff;outline:none;padding:6px 10px;font-family:inherit;font-size:.81rem}.sub-test-input-row input:focus,.branch-input-row input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61f}.st-group-toggle{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.st-group-btn{border:1.5px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:#fff;border-radius:20px;padding:4px 10px;font-family:inherit;font-size:.72rem;font-weight:600;transition:all .15s}.st-group-btn:hover{border-color:var(--text-light)}.st-group-btn.active[data-group-value=functional]{background:var(--blue-bg);color:var(--blue-hover);border-color:var(--blue-border)}.st-group-btn.active[data-group-value=environment]{color:#15803d;background:#dcfce7;border-color:#86efac}.btn-add-branch{align-items:center;gap:4px;margin-top:7px;display:inline-flex;color:var(--blue)!important;background:var(--blue-bg)!important;border:1px solid var(--blue-border)!important;padding:4px 10px!important;font-size:.75rem!important}.btn-add-branch:hover{background:#dbeafe!important}.branch-inputs{border-left:2px solid var(--blue-border);flex-direction:column;gap:6px;margin-top:6px;padding-left:18px;display:flex}.btn-remove-row{background:var(--red-bg);color:var(--red-text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);border:none;flex-shrink:0;padding:7px 10px;font-size:.8rem;font-weight:700}.btn-remove-row:hover{background:#fecaca}.add-test-btn{margin-top:8px}.st-list-with-tmpl{flex-direction:column;gap:5px;width:100%;padding:4px 0 2px 2px;display:flex}.st-tmpl-row{border:1px solid #e2e8f0;border-left:3px solid var(--group-accent-blue);background:#f8fafc;border-radius:6px;align-items:flex-start;gap:8px;padding:6px 8px;transition:background .15s;display:flex}.st-tmpl-row:hover{border-color:#bae6fd;border-left-color:var(--group-accent-blue);background:#f0f9ff}.st-tmpl-index{color:var(--blue);min-width:18px;padding-top:2px;font-size:.78rem;font-weight:700}.st-tmpl-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.st-tmpl-name{color:var(--text-primary);font-size:.82rem;font-weight:600}.st-tmpl-method{color:var(--text-muted);font-size:.74rem;font-style:italic}.st-group-badge{border-radius:4px;width:fit-content;margin-top:2px;padding:1px 6px;font-size:.68rem;font-weight:600;display:inline-block}.st-group-badge--functional{background:var(--blue-bg);color:var(--blue-hover)}.st-group-badge--environment{color:#15803d;background:#dcfce7}.st-tmpl-branch{color:var(--blue);padding-left:10px;font-size:.73rem}.st-tmpl-branch em{color:var(--text-light);font-style:normal}.st-tmpl-badge{color:#15803d;background:#dcfce7;border-radius:4px;width:fit-content;margin-top:2px;padding:1px 6px;font-size:.72rem;font-weight:600;display:inline-block}.st-report-tmpl-badge{color:#6d28d9;background:#ede9fe}.st-report-slot{color:#6d28d9;align-items:center;gap:6px;margin-top:4px;font-size:.74rem;font-weight:600;display:inline-flex}.st-report-slot input{border:1.5px solid #ddd6fe;border-radius:4px;width:56px;padding:2px 6px;font-family:inherit;font-size:.78rem}.st-variant-block{border:1px solid #e2e8f0;border-left:3px solid var(--group-accent-blue);background:#fff;border-radius:6px;flex-direction:column;gap:4px;margin-top:6px;padding:6px 8px;display:flex}.st-variant-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.st-variant-cap{color:var(--text-muted);font-size:.7rem;font-weight:600}.st-variant-key{color:#1e40af;background:#dbeafe;border-radius:4px;padding:1px 6px;font-size:.74rem;font-weight:700}.st-variant-key--empty{color:#c2410c;background:#ffedd5}.st-variant-badges{flex-wrap:wrap;gap:4px 6px;display:flex}.st-variant-badges .st-tmpl-badge{margin-top:0}@media (width<=768px){.card-header{flex-wrap:wrap;gap:6px}.card-header-actions{flex-wrap:wrap;gap:4px}.form-btn-row{flex-wrap:wrap}.sub-test-input-row,.branch-input-row{grid-template-columns:1fr}}@media (width<=640px){.st-tmpl-row{flex-wrap:wrap}}.btn-st-tmpl,.btn-st-tmpl-has,.btn-st-formula-warn{white-space:nowrap;flex-shrink:0;padding:3px 8px;font-size:.74rem;font-weight:600}.btn-st-tmpl{color:#1d4ed8;background:#eff6ff;border:1.5px solid #bfdbfe}.btn-st-tmpl:hover{background:#dbeafe}.btn-st-tmpl-has{color:#15803d;background:#f0fdf4;border:1.5px solid #86efac}.btn-st-tmpl-has:hover{background:#dcfce7}.btn-st-formula-warn{color:#c2410c;border:1.5px solid var(--orange-border);background:#fff7ed}.btn-st-formula-warn:hover{background:#ffedd5}.st-formula-warn-badge{color:#c2410c;cursor:help;background:#ffedd5}.st-tmpl-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.st-tmpl-btns{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.st-tmpl-menu-caret{opacity:.7;font-size:.7em}.st-tmpl-menu{z-index:60;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);min-width:190px;max-width:320px;box-shadow:var(--shadow-lg);padding:4px}.st-tmpl-menu-file{font-size:var(--fs-meta);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--border-color);margin-bottom:4px;padding:4px 10px 6px;overflow:hidden}.st-tmpl-menu-item{border-radius:var(--radius-sm);font-size:var(--fs-secondary);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;align-items:center;gap:6px;padding:7px 10px;display:flex}.st-tmpl-menu-item[data-highlighted]{background:var(--blue-bg);color:var(--blue-hover)}.st-tmpl-menu-item[data-disabled]{opacity:.45;cursor:not-allowed}.st-tmpl-menu-item--warn{color:#c2410c}.st-variant-block .st-tmpl-btns{justify-content:flex-start}@media (width<=640px){.st-tmpl-actions{align-items:stretch;width:100%}.st-tmpl-btns{justify-content:flex-start}}.dynform-fld-row{grid-template-columns:175px 1fr;align-items:center;gap:12px;padding:4px 0;display:grid}.dynform-fld-lbl{color:#374151;font-size:.82rem;font-weight:600}.dynform-fld-inp{background:#fff;border:1.5px solid #93c5fd;border-radius:5px;outline:none;padding:7px 11px;font-family:inherit;font-size:.83rem;transition:border-color .15s,box-shadow .15s}.dynform-fld-inp:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f624}@media (width<=640px){.dynform-fld-row{grid-template-columns:1fr;gap:4px}}.calcf-card{max-width:760px}.calcf-card .dynform-card-body{gap:12px}.calcf-guide{color:var(--text-secondary,#475569);background:var(--blue-bg);border:1px solid var(--blue-border);border-radius:6px;padding:10px 12px;font-size:.8rem;line-height:1.6}.calcf-guide code{color:#1e40af;background:#dbeafe;border-radius:3px;padding:0 4px;font-size:.78rem}.calcf-list{flex-direction:column;gap:8px;display:flex}.calcf-row{grid-template-columns:150px auto 1fr auto;align-items:center;gap:6px 8px;display:grid}.calcf-row .dynform-fld-inp{width:100%;min-width:0}.calcf-src{font-family:Consolas,Courier New,monospace}.calcf-row--err .calcf-src{border-color:var(--red)}.calcf-eq{color:var(--text-muted);font-weight:700}.calcf-msg{grid-column:1/-1;font-size:.76rem;line-height:1.45}.calcf-msg:empty{display:none}.calcf-msg-err{color:var(--red-text)}.calcf-msg-warn{color:#9a3412}.calcf-save-note{color:var(--red-text);font-size:.78rem}@media (width<=640px){.calcf-row{grid-template-columns:1fr auto}.calcf-row .calcf-tag{grid-column:1/-1}.calcf-eq{display:none}}.label-hint{color:var(--text-muted);font-size:.75rem;font-weight:400}.form-template-hint{margin-bottom:8px}.report-frame-guide{color:var(--text-secondary,#475569);background:#f5f3ff;border:1px solid #ddd6fe;border-radius:6px;margin-bottom:10px;padding:10px 12px;font-size:.8rem;line-height:1.55}.report-frame-guide code{color:#5b21b6;background:#ede9fe;border-radius:3px;padding:0 4px;font-size:.78rem}.report-frame-guide ul{margin:4px 0 6px 18px;padding:0}.form-template-list{margin-top:10px}.config-list-item.is-hidden .item-name{color:var(--text-muted)}.replace-removed-tags{color:#9a3412;margin:0;padding-left:18px;font-size:.8rem}.holiday-toolbar{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.holiday-toolbar .form-group{margin-bottom:0}.holiday-date{font-variant-numeric:tabular-nums}.holiday-weekend{color:var(--text-muted);font-size:.72rem;font-weight:400}.help-doc{color:var(--text-primary);font-size:.84rem;line-height:1.6}.help-doc h2{margin:4px 0 8px;font-size:1.05rem}.help-doc h3{margin:16px 0 6px;font-size:.95rem}.help-doc h4{margin:12px 0 4px;font-size:.88rem}.help-doc p,.help-doc ul,.help-doc ol{margin:0 0 8px}.help-doc ul,.help-doc ol{padding-left:20px}.help-doc code{color:#1e40af;background:#eff6ff;border-radius:3px;padding:0 4px;font-size:.8rem}.help-doc pre{border:1px solid var(--border-color);background:#f8fafc;border-radius:6px;padding:8px 10px;overflow-x:auto}.help-doc pre code{background:0 0;padding:0}.help-doc table{border-collapse:collapse;margin:0 0 10px;font-size:.8rem;display:block;overflow-x:auto}.help-doc th,.help-doc td{border:1px solid var(--border-color);text-align:left;vertical-align:top;padding:4px 8px}.help-doc th{background:#f1f5f9}.help-doc blockquote{border-left:3px solid var(--blue-border);background:var(--blue-bg);margin:0 0 8px;padding:6px 10px}.help-doc hr{border:none;border-top:1px solid var(--border-color);margin:12px 0}.choice-hint p,.choice-hint ul{margin:0 0 4px}.choice-hint ul{padding-left:18px}.choice-hint code,.choice-tag,.choice-sub code{border-radius:var(--radius-sm);background:var(--row-hover-bg);padding:0 3px;font-family:inherit;font-size:.78rem;font-style:normal}.choice-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:8px 12px;display:grid}.choice-form .form-group{margin-bottom:0}.choice-options-group,.choice-form .form-btn-row{grid-column:1/-1}.choice-options-group textarea{resize:vertical;min-height:96px}.choice-tag{color:var(--text-muted);margin-left:6px;font-weight:400}.choice-chips{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.choice-chip{border:1px solid var(--blue-border);background:var(--blue-bg);font-size:var(--fs-meta);color:var(--text-primary);border-radius:999px;padding:1px 8px}[data-choice-row] .item-name{white-space:normal}@media (width<=600px){.choice-form{grid-template-columns:minmax(0,1fr)}}.config-back{font-size:var(--fs-secondary);color:var(--blue);margin:0 0 8px;font-weight:600;text-decoration:none;display:inline-block}.config-back:hover{text-decoration:underline}.form-row-2col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-group textarea{resize:vertical}.code-input{letter-spacing:.04em;color:var(--blue)!important;background:var(--blue-bg)!important;border-color:var(--blue-border)!important;font-family:Courier New,monospace!important;font-size:1rem!important;font-weight:700!important}.code-input:focus{border-color:var(--blue)!important;color:var(--text-primary)!important;background:#fff!important;box-shadow:0 0 0 3px #3b82f62e!important}.intake-new-wrap{max-width:1100px;margin:0 auto}.product-subtests-container{background:#f0f9ff;border:1px solid #bae6fd;border-radius:7px;margin-top:10px;padding:10px 12px}.st-selection-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.st-selection-label{color:#0369a1;font-size:.8rem;font-weight:700}.st-selection-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.st-count{color:#fff;background:#0ea5e9;border-radius:20px;padding:2px 8px;font-size:.75rem;font-weight:600;transition:background .2s}.st-count--partial{background:#f59e0b}.st-toggle-btn{white-space:nowrap;border-radius:20px;font-weight:600;color:#0369a1!important;background:#fff!important;border:1.5px solid #bae6fd!important;padding:3px 10px!important;font-size:.72rem!important}.st-toggle-btn:hover{background:#e0f2fe!important}.product-subtests-container.st-collapsed .st-group-filter,.product-subtests-container.st-collapsed .st-checkbox-row{display:none}.intake-add-row-btn{margin-top:6px}.st-checkbox-row{cursor:pointer;color:#0c4a6e;border-bottom:1px dashed #bae6fd;border-radius:5px;align-items:flex-start;gap:8px;padding:5px 4px;font-size:.79rem;transition:background .15s;display:flex}.st-checkbox-row:last-child{border-bottom:none}.st-checkbox-row:hover{background:#e0f2fe}.st-checkbox-row input[type=checkbox]{cursor:pointer;accent-color:#0ea5e9;flex-shrink:0;width:15px;height:15px;margin-top:2px}.st-checkbox-row:has(input:not(:checked)){opacity:.5;text-decoration:line-through}.st-num{color:#0369a1;flex-shrink:0;min-width:20px;font-weight:700}.st-name{flex:1;font-weight:600}.st-method{color:#64748b;margin-left:4px;font-size:.74rem}.st-group-filter{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.st-group-filter-btn{border-radius:20px;font-weight:600;color:#0369a1!important;background:#fff!important;border:1.5px solid #bae6fd!important;padding:4px 10px!important;font-size:.72rem!important}.st-group-filter-btn:hover{background:#e0f2fe!important}.st-group-filter-btn--all{border-color:var(--border-color)!important;color:var(--text-muted)!important}.st-group-filter-btn--all:hover{background:#f1f5f9!important}.st-group-filter-btn.active[data-filter-group=functional]{background:var(--blue-hover)!important;color:#fff!important;border-color:var(--blue-hover)!important}.st-group-filter-btn.active[data-filter-group=environment]{color:#fff!important;background:#15803d!important;border-color:#15803d!important}.st-group-filter-btn--all.active{background:var(--text-primary)!important;color:#fff!important;border-color:var(--text-primary)!important}.st-group-tag{white-space:nowrap;border-radius:4px;flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:.66rem;font-weight:600}.st-group-tag--functional{background:var(--blue-bg);color:var(--blue-hover)}.st-group-tag--environment{color:#15803d;background:#dcfce7}.product-item-row{background:var(--bg-page);border:1px solid var(--border-color);border-left:4px solid var(--group-accent-blue);border-radius:8px;margin-bottom:10px;padding:10px 12px}.product-item-type-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.product-item-type-row .product-type-select{flex:1}.product-item-code-row{margin-bottom:6px}.product-code-input{box-sizing:border-box;border:1px solid var(--border-color);border-radius:5px;width:100%;padding:6px 8px;font-size:.85rem}.product-specs-input{box-sizing:border-box;border:1px solid var(--border-color);resize:vertical;border-radius:5px;width:100%;padding:6px 8px;font-size:.83rem}.btn-remove-operator{background:var(--red-bg);color:var(--red-text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);border:none;flex-shrink:0;padding:7px 10px;font-size:.8rem;font-weight:700}.btn-remove-operator:hover{background:#fecaca}.product-group-block{background:#f5f3ff;border:1px solid #ddd6fe;border-radius:8px;margin-bottom:10px;padding:10px 12px}.product-group-block-hd{align-items:center;gap:8px;margin-bottom:8px;display:flex}.product-group-name-input{box-sizing:border-box;border:1px solid var(--border-color);border-radius:5px;flex:1;padding:6px 8px;font-size:.85rem;font-weight:600}.product-group-members{flex-direction:column;gap:2px;display:flex}.product-group-member-row{cursor:pointer;align-items:center;gap:8px;padding:4px 2px;font-size:.83rem;display:flex}.lab-testers-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tester-tag{color:var(--text-primary);border:1px solid var(--border-color);background:#f1f5f9;border-radius:20px;align-items:center;gap:4px;padding:2px 10px;font-size:.78rem;font-weight:400;display:inline-flex}.tester-remove-btn{cursor:pointer;color:#6b7280;transition:color var(--transition);background:0 0;border:none;padding:0 0 0 4px;font-size:1rem;font-weight:700;line-height:1}.tester-remove-btn:hover{color:#dc2626}.tester-add-select{color:#1d4ed8;cursor:pointer;background:#fff;border:1.5px dashed #93c5fd;border-radius:20px;outline:none;padding:3px 10px;font-family:inherit;font-size:.78rem}.tester-add-select:focus{border-color:var(--blue)}.tester-none{color:var(--text-light);font-size:.77rem;font-style:italic}.customer-picker{position:relative}.customer-picker-list{z-index:20;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);max-height:280px;box-shadow:var(--shadow);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.customer-picker-option{border-radius:var(--radius-sm);cursor:pointer;padding:8px 10px;font-size:.86rem}.customer-picker-option:hover,.customer-picker-option.is-active{background:var(--blue-bg)}.customer-picker-option--new{color:var(--blue);font-weight:600}.customer-picker-empty{color:var(--text-muted);padding:8px 10px;font-size:.8rem;font-style:italic}.customer-picker-hint{color:var(--yellow-text);margin-top:4px;font-size:.75rem}.intake-mgmt-list{flex-direction:column;gap:10px;padding:12px;display:flex}.intake-list-toolbar{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:flex-end;gap:16px;margin:12px 12px 6px;padding:16px 20px;display:flex}.filter-group{flex-direction:column;gap:5px;display:flex}.filter-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.filter-group select{border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;background:#fff;outline:none;min-width:110px;padding:8px 13px;font-family:inherit;font-size:.88rem}.filter-group--search{flex:1;min-width:240px}.search-input-wrap{align-items:center;display:flex;position:relative}.search-icon{pointer-events:none;z-index:1;font-size:.85rem;position:absolute;left:11px}.search-input-wrap input{border:1px solid var(--border-color);border-radius:var(--radius);background:#fff;outline:none;width:100%;padding:8px 13px 8px 34px;font-family:inherit;font-size:.88rem}.search-input-wrap input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61f}.mgmt-sample-card{border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:var(--bg-card);transition:background var(--transition), box-shadow var(--transition);padding:14px 20px;overflow:hidden}.mgmt-sample-card:hover{box-shadow:var(--shadow);background:#fafafa}.mgmt-card-header{background:#bfdbfe;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin:-14px -20px 12px;padding:12px 20px;display:flex}.mgmt-card-header--clickable{cursor:pointer}.mgmt-card-left{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.mgmt-card-right{align-items:center;gap:8px;display:flex}.mgmt-row-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:8px;display:none}.mgmt-row-dot--red{background:var(--red)}.mgmt-row-dot--yellow{background:var(--yellow)}.mgmt-row-dot--green{background:var(--green)}.mgmt-row-dot--blue{background:var(--blue)}.mgmt-card-info{flex-direction:column;gap:2px;display:flex}.mgmt-client{font-weight:700;font-size:var(--fs-body);color:#0c2f6e}.mgmt-client-count{font-weight:400;font-size:var(--fs-meta);color:var(--text-muted)}.mgmt-personnel{font-size:var(--fs-meta);color:#1e40af;margin:0 0 10px;font-weight:500}.gate-status{border-radius:var(--radius-sm);padding:3px 9px;font-size:.72rem;font-weight:700}.gate-locked{background:var(--red-bg);color:var(--red-text)}.gate-open{background:var(--green-bg);color:var(--green-text)}.gate-sample{background:var(--yellow-bg);color:var(--yellow-text)}.sample-code{font-family:Courier New,monospace;font-weight:700;font-size:var(--fs-body);color:#1d4ed8;border-radius:var(--radius-sm);border:1px solid var(--blue-border);white-space:nowrap;background:#fff;padding:3px 10px}.paused-warning-badge{color:#92400e;white-space:nowrap;background:#fef3c7;border:1px solid #f59e0b;border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.paused-border-warn{outline-offset:-3px;outline:3px solid #f59e0b}.intake-pager{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;padding:4px 12px 16px;font-size:.82rem;display:flex}@media (width>=1101px){.intake-mgmt-list{gap:6px}.intake-mgmt-list .mgmt-sample-card{box-shadow:none;padding:10px 14px}.intake-mgmt-list .mgmt-sample-card:hover{box-shadow:none;background:#f1f3f4}.intake-mgmt-list .mgmt-card-header{background:0 0;margin:-10px -14px 8px;padding:8px 14px}.mgmt-row-dot{display:block}.mgmt-sample-card.mgmt-active .mgmt-personnel{padding-left:18px}.intake-mgmt-list .mgmt-client{color:var(--text-primary)}.intake-mgmt-list .mgmt-personnel{color:var(--text-muted);font-weight:400;font-size:var(--fs-meta)}.intake-mgmt-list .mgmt-card-info{gap:1px}}@media (width<=768px){.intake-list-toolbar{flex-direction:column;align-items:stretch}.form-row-2col{grid-template-columns:1fr;gap:0}.code-input{min-height:44px;padding:12px 14px!important;font-size:1.05rem!important}.product-item-row{margin-bottom:8px;padding:8px 10px}.product-item-type-row{align-items:center;gap:6px}.product-item-type-row .product-type-select{min-width:0;min-height:44px;padding:10px 8px;font-size:.95rem}.product-code-input{min-height:44px;padding:10px 12px;font-size:.95rem}.product-specs-input{min-height:72px;padding:10px 12px;font-size:.95rem}.btn-remove-operator{min-width:44px;min-height:44px;padding:0 12px;font-size:.85rem}.btn-full{border-radius:10px;min-height:48px;font-size:1rem}.intake-mgmt-list{gap:8px;padding:10px}.mgmt-sample-card{padding:12px 14px}.mgmt-card-header,.mgmt-card-left{gap:8px}.mgmt-client{font-size:.92rem}}@media (width<=480px){.product-item-row{padding:7px 8px}.mgmt-sample-card{padding:10px 12px}}.lab-detail-screen{flex-direction:column;gap:16px;display:flex}.intake-detail-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.lab-detail-screen .mgmt-sample-card.mgmt-active,.lab-detail-screen .mgmt-sample-card.mgmt-active:hover{box-shadow:none;background:var(--bg-card);border:none;border-radius:0}.lab-detail-screen .mgmt-card-right-col>.mgmt-card-header.company-row-accent{margin:0 0 12px;padding:8px 10px}@media (width>=1101px){.lab-detail-screen .mgmt-sample-card.mgmt-active{grid-template-columns:1fr 288px;align-items:start;column-gap:18px;display:grid}.lab-detail-screen .mgmt-sample-card.mgmt-active>.mgmt-card-left-col{grid-column:1}.lab-detail-screen .mgmt-sample-card.mgmt-active>.mgmt-card-right-col{flex-direction:column;grid-column:2;gap:10px;display:flex}.lab-detail-screen .mgmt-sample-card.mgmt-active>.mgmt-card-right-col>.mgmt-card-header,.lab-detail-screen .mgmt-sample-card.mgmt-active>.mgmt-card-right-col>.mgmt-personnel{margin-bottom:0}.lab-detail-screen .mgmt-sample-card.mgmt-active>.mgmt-card-right-col>.batch-summary-section{margin:0}.lab-detail-screen .mgmt-sample-card.mgmt-active>.intake-edit-history{grid-column:1/-1}}.mgmt-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.mgmt-date{font-size:var(--fs-meta);color:var(--text-muted)}.mgmt-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.batch-summary-section{border:1.5px solid var(--border-color);border-radius:var(--radius);background:#f8fafc;margin:10px 0;padding:10px 14px}.batch-summary-title{color:var(--text-primary);margin-bottom:6px;font-size:.86rem;font-weight:400}.intake-batch-section-title{align-items:center;gap:8px;display:flex}.item-group-block{border:1px solid var(--border-color);border-left:4px solid var(--group-accent-blue);background:var(--bg-card);border-radius:8px;margin-bottom:12px;padding:10px 12px}.item-group-block-hd{color:var(--text-primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin-bottom:10px;font-weight:700;display:flex}.intake-detail-body .item-group-block-hd{font-size:.86rem}.item-group-block .item-collection-section:last-child{margin-bottom:0}.item-collection-section{border:1px solid var(--border-color);border-radius:8px;margin-bottom:10px;overflow:hidden}.item-collection-header{background:var(--bg-page);border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.item-collection-header strong{font-weight:400;font-size:var(--fs-body);flex:1}.item-key-tag{color:#1e40af;white-space:nowrap;margin-left:4px;font-size:.78em;font-weight:600}.item-key-tag--btn{cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.item-key-tag--btn:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.item-key-tag--btn:focus-visible{outline-offset:1px;border-radius:3px;outline:2px solid #6366f1}.item-col-badge{border-radius:20px;padding:2px 8px;font-size:.73rem;font-weight:600}.item-col-badge--pending{color:#713f12;background:#fef9c3}.item-col-badge--collected{color:#3730a3;background:#e0e7ff}.item-col-badge--locked{color:#991b1b;background:#fee2e2}.item-col-badge--waiting-test{color:#1e40af;background:#dbeafe}.item-col-badge--testing{color:#9a3412;background:#ffedd5}.item-col-badge--review{color:#6b21a8;background:#f3e8ff}.item-col-badge--approved{color:#065f46;background:#d1fae5}.item-col-badge--returned{background:var(--green-bg);color:var(--green-text)}.item-col-badge--payment{color:#334155;background:#e2e8f0}.item-conclusion-block{border-top:1px solid var(--border-color);padding:10px 12px}.item-conclusion-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.item-conclusion-title{color:var(--text-primary);font-size:.86rem;font-weight:400}.item-conclusion-note{border-radius:var(--radius);color:#166534;background:#f0fdf4;border:1px solid #86efac;margin-bottom:8px;padding:8px 12px;font-size:.8rem;line-height:1.5}.item-conclusion-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.item-conclusion-pending{color:#c2410c;font-size:.77rem}.approved-note-label{margin-right:4px;font-weight:400}.result-badge{border-radius:20px;flex-shrink:0;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.result-pass{background:var(--green-bg);color:var(--green-text)}.result-fail{background:var(--red-bg);color:var(--red-text)}.approval-payment-warning{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa;border-radius:20px;align-items:center;gap:4px;margin-left:4px;padding:2px 8px;font-size:.74rem;font-weight:700;display:inline-flex}.intake-edit-history{border:1px solid var(--border-color);border-radius:var(--radius);margin:14px 20px 16px;overflow:hidden}.intake-edit-history-header{cursor:pointer;color:var(--text-primary);background:#f8fafc;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.82rem;font-weight:400;display:flex}.intake-edit-history-list{color:var(--text-muted);flex-direction:column;gap:6px;padding:10px 12px;font-size:.79rem;display:flex}.intake-edit-history-entry{border-bottom:1px dashed var(--border-color);padding-bottom:6px}.intake-edit-history-entry:last-child{border-bottom:none;padding-bottom:0}.intake-edit-history-meta{color:var(--text-primary);font-weight:400}.product-item-type-label{color:var(--text-primary);flex:1;font-size:.85rem;font-weight:700}.intake-edit-item-actions{margin-top:8px}.intake-locked-note{color:var(--text-muted);font-size:.78rem;font-style:italic}.st-checkbox-row--locked{cursor:not-allowed;opacity:.85}.st-checkbox-row--locked:hover{background:0 0}.st-locked-note{color:#b45309;white-space:nowrap;margin-left:4px;font-size:.72rem;font-style:italic}.cfg-deleted-badge{white-space:nowrap;color:#c2410c;vertical-align:middle;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;margin-left:4px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.pause-toggle-btn{cursor:pointer;vertical-align:middle;opacity:.55;width:24px;height:24px;transition:all var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;font-size:1rem;line-height:1;display:inline-flex}.pause-toggle-btn:hover:not(:disabled){opacity:.9;background:#f1f5f9}.pause-toggle-btn:disabled{cursor:not-allowed;opacity:.3}.live-pending-banner{text-align:left;border-radius:var(--radius);color:#c2410c;cursor:pointer;background:#fff7ed;border:1px solid #fed7aa;width:100%;padding:10px 14px;font-size:.85rem;font-weight:600;display:block}@media (width<=768px){.mgmt-card-footer{gap:6px}.mgmt-actions{gap:5px}.mgmt-actions .btn-sm{min-height:38px;padding:7px 12px;font-size:.8rem}}@media (width<=480px){.intake-detail-toolbar{flex-direction:column;align-items:stretch}.mgmt-actions .btn-sm{min-height:36px;padding:6px 10px;font-size:.78rem}}.dynform-tbl-wrap{flex-direction:column;gap:6px;display:flex}.dynform-tbl-scroll{border:1.5px solid #bfdbfe;border-radius:10px;overflow-x:auto;box-shadow:0 1px 6px #2563eb14}.dynform-tbl{border-collapse:collapse;background:#fff;width:100%;font-size:.83rem}.dynform-tbl th{color:#1e40af;white-space:nowrap;text-align:center;text-transform:capitalize;border-bottom:2px solid #bfdbfe;padding:9px 10px;font-size:.81rem;font-weight:700}.dynform-tbl td{text-align:center;border-bottom:1px solid #eff6ff;padding:5px 6px}.dynform-tbl tbody tr:last-child td{border-bottom:none}.dynform-tbl tbody tr:hover td{background:#f0f9ff}.dynform-cb-inp{display:none}.dynform-cb-icon{cursor:pointer;background:#fff;border:2px solid #93c5fd;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;transition:all .15s;display:flex;position:relative}.dynform-cb-inp:checked+.dynform-cb-icon{background:#3b82f6;border-color:#2563eb}.dynform-cb-inp:checked+.dynform-cb-icon:after{content:"✓";color:#fff;font-size:.75rem;font-weight:800;position:absolute}.dynform-cb-inp:disabled+.dynform-cb-icon{opacity:.72;cursor:default}.dynform-layout{flex-direction:column;gap:2px;display:flex}.dynform-layout-p{color:#1f2937;margin:0;padding:2px 0;font-size:.86rem;line-height:1.7}.dynform-align-center{text-align:center}.dynform-align-right{text-align:right}.dynform-layout h2.dynform-layout-p,.dynform-layout h3.dynform-layout-p,.dynform-layout h4.dynform-layout-p,.dynform-layout h5.dynform-layout-p{color:#1e3a8a;margin:10px 0 4px;font-weight:800}.dynform-layout h2.dynform-layout-p{font-size:1rem}.dynform-layout h3.dynform-layout-p{font-size:.95rem}.dynform-layout h4.dynform-layout-p,.dynform-layout h5.dynform-layout-p{font-size:.88rem}.dynform-layout .dynform-tbl-wrap{margin:6px 0}.dynform-inline-inp{min-width:44px;max-width:100%;color:inherit;vertical-align:baseline;background:#fff;border:1.5px solid #93c5fd;border-radius:5px;outline:none;margin:0 2px;padding:1px 6px;font-family:inherit;font-size:.86rem;transition:border-color .15s,box-shadow .15s,width .1s;display:inline-block}.dynform-inline-inp:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f624}.dynform-inline-inp:disabled{color:#374151;cursor:default;background:#f8fafc;border-color:#e2e8f0}.dynform-people-btn{text-align:left;cursor:pointer;vertical-align:middle;align-items:center;gap:6px;min-width:120px;display:inline-flex}.dynform-people-btn:hover{border-color:#3b82f6}.dynform-people-names{flex:1}.dynform-people-caret{color:var(--text-muted);font-size:.7rem}.dynform-people-menu{z-index:9600;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);min-width:220px;max-width:340px;max-height:320px;box-shadow:var(--shadow-lg);padding:4px;overflow-y:auto}.dynform-people-head{font-size:var(--fs-meta);color:var(--text-muted);border-bottom:1px solid var(--border-color);margin-bottom:4px;padding:4px 10px 6px}.dynform-people-opt{font-size:var(--fs-body);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.dynform-people-opt:hover{background:var(--row-hover-bg)}.dynform-people-empty{font-size:var(--fs-meta);color:var(--text-muted);margin:0;padding:6px 10px}.dynform-measure{visibility:hidden;white-space:pre;position:fixed;top:-9999px;left:-9999px}.dynform-inline-cb-wrap{cursor:pointer;vertical-align:middle;justify-content:center;align-items:center;margin:0 3px;display:inline-flex}.dynform-inline-cb-wrap:has(.dynform-cb-inp:disabled){cursor:default}.dynform-tbl--layout{table-layout:fixed}.dynform-tbl--layout th{color:#1e40af;text-align:left;white-space:normal;overflow-wrap:break-word;word-break:break-word;background:#dbeafe;border-bottom:2px solid #bfdbfe;padding:9px 10px;font-size:.81rem;font-weight:700}.dynform-tbl--layout td{text-align:left;vertical-align:middle;overflow-wrap:break-word;word-break:break-word}.dynform-calc-wrap{vertical-align:middle;align-items:center;max-width:100%;display:inline-flex;position:relative}.dynform-calc-inp,.dynform-calc-inp:disabled,.dynform-calc-inp:focus{color:#334155;cursor:default;box-shadow:none;background:#f1f5f9;border-style:dashed;border-color:#cbd5e1}.dynform-calc-inp--err,.dynform-calc-inp--err:focus{border:1.5px solid var(--red);background:#fef2f2}.dynform-calc-mark{color:#475569;pointer-events:none;background:#e2e8f0;border-radius:3px;padding:1px 3px;font-size:.66rem;font-style:italic;font-weight:700;line-height:1;position:absolute;top:-7px;right:-3px}.dynform-calc-inp--err+.dynform-calc-mark{color:#fff;background:var(--red)}.dynform-inline-inp.rpinfo-auto-inp,.rpinfo-auto-inp{color:#475569!important;background:#f1f5f9!important;border-style:dashed!important}.rpkl-select{background:#fff;border:1.5px solid #93c5fd;border-radius:6px;min-width:110px;padding:4px 8px;font-family:inherit;font-size:.85rem}.rpkl-select--inline{vertical-align:middle;margin:0 2px;display:inline-block}.rpkl-select:disabled{color:#475569;border-color:var(--border-color);background:#f1f5f9}.dynform-card-hd.dynform-card-hd--ro{background:linear-gradient(135deg,#5b21b6 0%,#7c3aed 100%)}.dynform-ro-banner{color:#92400e;background:#fef3c7;border-bottom:1px solid #fde68a;flex-shrink:0;align-items:center;gap:6px;padding:8px 20px;font-size:.8rem;font-weight:600;display:flex}.dynform-rep-stt{color:var(--text-primary);font-weight:600}.dynform-rep-del{color:#dc2626;cursor:pointer;vertical-align:middle;background:#fff;border:1px solid #fecaca;border-radius:4px;width:20px;height:20px;margin-left:6px;padding:0;font-size:.7rem;line-height:18px}.dynform-rep-del:hover{background:#fef2f2}.dynform-tbl-wrap>.dynform-rep-add{align-self:flex-start;margin-top:6px}@media (width<=640px){.dynform-tbl--layout{table-layout:auto}.dynform-tbl--layout th,.dynform-tbl--layout td{min-width:88px}}.rpa-section{border-top:1px dashed var(--border-color,#cbd5e1);margin-top:16px;padding-top:12px}.rpa-section-hd{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.rpa-section-title{color:var(--text-primary);font-size:.88rem;font-weight:700}.rpa-add-btns{flex-wrap:wrap;gap:6px;display:flex}.rpa-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;margin-bottom:6px;padding:6px 10px;font-size:.78rem}.rpa-hint{color:var(--text-muted);margin-bottom:8px;font-size:.74rem}.rpa-list{flex-direction:column;gap:8px;display:flex}.rpa-empty{color:var(--text-muted);text-align:center;padding:10px 0;font-size:.8rem}.rpa-item{border:1px solid var(--border-color);border-left:3px solid var(--group-accent-blue);border-radius:var(--radius);background:#f8fafc;align-items:center;gap:10px;padding:8px 10px;display:flex}.rpa-item.dragging{opacity:0}.rpa-thumb{background:#e2e8f0;border-radius:4px;flex:0 0 96px;justify-content:center;align-items:center;width:96px;height:72px;display:flex;overflow:hidden}.rpa-thumb img{object-fit:cover;width:100%;height:100%;display:block}.rpa-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.rpa-label{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:8px;font-size:.8rem;font-weight:700;display:flex}.rpa-status{color:#2563eb;font-size:.74rem;font-weight:500}.rpa-status--err{color:#dc2626}.rpa-note{box-sizing:border-box;width:100%}.rpa-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.rpa-mv{border:1px solid var(--border-color);cursor:pointer;width:28px;height:28px;color:var(--text-muted);background:#fff;border-radius:5px;font-size:.7rem}.rpa-mv:disabled{opacity:.35;cursor:default}@media (width<=640px){.rpa-item{flex-wrap:wrap}.rpa-thumb{flex-basis:80px;width:80px;height:60px}.rpa-actions{justify-content:flex-end;width:100%}}.batch-tbl-scroll{border:1px solid var(--border-color);border-radius:8px;overflow-x:auto}.batch-tbl{border-collapse:collapse;background:#fff;width:100%;font-size:.82rem}.batch-tbl td{border-bottom:1px solid var(--border-color);white-space:nowrap;color:var(--text-primary);padding:7px 10px}.batch-tbl tbody tr:last-child td{border-bottom:none}.batch-tbl tbody tr:hover td{background:#f8fafc}.batch-tbl-row--deleted td{color:var(--text-muted);text-decoration:line-through}.batch-tbl-row--deleted td.batch-tbl-actions{text-decoration:none}.batch-tbl-deleted-tag{margin-left:4px;font-size:.7rem}.batch-tbl-actions{white-space:nowrap;gap:4px;display:flex}.batch-tbl-icon-btn{color:#1e40af;cursor:pointer;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;transition:background .15s;display:inline-flex}.batch-tbl-icon-btn:hover{background:#dbeafe}.export-icon-btn.export-icon-btn--danger{color:#b91c1c;border-color:#fecaca}.export-icon-btn.export-icon-btn--danger:hover{background:#fef2f2;border-color:#fca5a5}.lab-detail-back-btn{box-sizing:border-box;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);min-height:44px;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow);transition:all var(--transition);align-self:flex-start;align-items:center;gap:8px;padding:11px 20px;font-family:inherit;font-size:.88rem;font-weight:700;display:inline-flex}.lab-detail-back-btn:hover{background:#f1f5f9}.lab-detail-back-btn:active{transform:scale(.97)}.lab-sample-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border-color);overflow:hidden}.lab-sample-header{background:var(--row-active-bg);-webkit-user-select:none;user-select:none;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.lab-header-nofold{cursor:default}.lsh-left{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lab-sample-title{font-size:var(--fs-body);color:#0c2f6e;font-weight:700}.lab-sample-body{padding:20px}.lab-item-notice{color:var(--text-muted);margin:0;padding:8px 14px;font-size:.82rem}.batch-picker{border:1.5px solid var(--border-color);border-radius:var(--radius);background:#f8fafc;margin:8px 0;overflow:hidden}.batch-picker-header{border-bottom:1px solid var(--border-color);background:#eff6ff;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.batch-picker-title{color:var(--text-primary);font-size:.86rem;font-weight:700}.batch-picker-list{flex-direction:column;gap:2px;max-height:260px;padding:8px 14px;display:flex;overflow-y:auto}.batch-picker-row{color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;padding:6px 4px;font-size:.85rem;display:flex}.batch-picker-row:hover{background:#eff6ff;border-radius:4px}.batch-picker-row input[type=checkbox]{cursor:pointer;flex-shrink:0;width:16px;height:16px}.batch-picker-row-sub{color:var(--text-muted);font-size:.78rem}.batch-picker-actions{border-top:1px dashed var(--border-color);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.batch-action-btn:disabled{opacity:.5;cursor:not-allowed}.tmplchoice-list{flex-direction:column;gap:8px;display:flex}.tmplchoice-row{text-align:left;border:1.5px solid var(--border-color);border-radius:var(--radius);width:100%;color:var(--text-primary);cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s;display:flex}.tmplchoice-row:hover{background:#eff6ff;border-color:#bfdbfe}.tmplchoice-name{align-items:center;gap:6px;display:flex}.lab-bbgn-section{border-bottom:1px solid var(--border-color)}.lab-bbgn-header{cursor:pointer;color:var(--text-primary);background:#f8fafc;justify-content:space-between;align-items:center;padding:9px 20px;font-size:.82rem;font-weight:400;display:flex}.lab-bbgn-body{padding:10px 20px 14px}.lab-bbgn-body .batch-summary-section:first-child{margin-top:0}.lab-bbgn-body .batch-summary-section:last-child{margin-bottom:0}.batch-fields-note{color:#92400e;border-radius:var(--radius-sm);background:#fffbeb;border:1px solid #fde68a;margin:0 0 12px;padding:8px 12px;font-size:.82rem}.batch-fields-tbl{border-collapse:collapse;width:100%;font-size:.85rem}.batch-fields-tbl th,.batch-fields-tbl td{border:1px solid var(--border-color);text-align:left;vertical-align:top;padding:6px 10px}.batch-fields-tbl th{word-break:break-word;background:#f8fafc;width:40%;font-weight:600}.batch-fields-tbl td{white-space:pre-wrap}.pv-root{color:#111;background:#d1d5db;min-height:100vh;font-family:Times New Roman,Times,serif;font-size:12pt}.pv-loading{text-align:center;color:#555;padding:60px 20px;font-family:sans-serif;font-size:1.3rem}.pv-error{color:#dc2626;padding:40px;font-family:sans-serif}.pv-error pre{white-space:pre-wrap;margin:12px 0}.pv-toolbar{color:#fff;z-index:100;background:#1e40af;align-items:center;gap:10px;padding:10px 20px;font-family:system-ui,sans-serif;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #0000004d}.pv-toolbar-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.88rem;font-weight:600;overflow:hidden}.pv-toolbar-meta{opacity:.75;white-space:nowrap;font-size:.75rem}.pv-toolbar-note{opacity:.8;white-space:nowrap;font-size:.7rem}.pv-root .pv-tbtn,.pv-root .btn.pv-tbtn{color:#1e40af;cursor:pointer;white-space:nowrap;min-height:0;box-shadow:none;background:#fff;border:none;border-radius:5px;padding:6px 14px;font-family:inherit;font-size:.8rem;font-weight:700}.pv-root .pv-tbtn:hover{background:#dbeafe}.pv-page{background:#fff;width:210mm;min-height:100mm;margin:64px auto 40px;padding:20mm 15mm 20mm 30mm;box-shadow:0 4px 24px #0000002e}.pv-body p{margin:2pt 0;line-height:1.5}.pv-body .pv-br{margin:0;line-height:1.2}.pv-body h2,.pv-body h3,.pv-body h4,.pv-body h5{margin:8pt 0 4pt;line-height:1.3}.pv-body h2{font-size:14pt}.pv-body h3{font-size:13pt}.pv-body h4{font-size:12pt}.pv-body h5{font-size:11pt}.pv-body .pv-tbl{border-collapse:collapse;width:100%;margin:6pt 0;font-size:11pt}.pv-body .pv-tbl th,.pv-body .pv-tbl td{vertical-align:top;border:1px solid #555;padding:3pt 6pt}.pv-body .pv-tbl th{text-align:center;background:#f0f0f0;font-weight:700}.pv-warn{color:#92400e;background:#fffbeb;border:1px solid #f59e0b;border-radius:6px;margin:0 0 14pt;padding:10px 14px;font-family:system-ui,sans-serif;font-size:.85rem}.pv-warn ul{margin:6px 0 0 18px}@media print{.pv-toolbar,.pv-warn{display:none}.pv-root{background:#fff}.pv-page{width:100%;box-shadow:none;margin:0;padding:20mm 15mm 20mm 30mm}}@media (width<=230mm){.pv-page{width:100%;padding:16px}}.lab-subtabs{border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:8px;margin-bottom:18px;padding-bottom:12px;display:flex}.lab-subtab-btn{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:all var(--transition);border-radius:20px;align-items:center;gap:8px;padding:9px 16px;font-family:inherit;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.lab-subtab-btn:hover{color:var(--text-primary);background:#f1f5f9}.lab-subtab-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.lab-subtab-btn--pending.active{background:#92400e;border-color:#92400e}.lab-pending-badge{color:#fff;background:#dc2626;border-radius:20px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.lab-subtab-btn:not(.active) .lab-pending-badge{background:#c2410c}.lab-sample-list{flex-direction:column;gap:6px;display:flex}.lab-sample-list>.lab-sample-card{box-shadow:none}.lab-sample-list .lab-sample-header .lab-sample-title{color:var(--text-primary)}.lab-sample-list>.lab-sample-card>.lab-sample-header{background:var(--bg-card);transition:background var(--transition)}.lab-sample-header--link{cursor:pointer}.lab-sample-list>.lab-sample-card>.lab-sample-header--link:hover{background:var(--row-hover-bg)}.lab-sample-list>.lab-sample-card>.lab-sample-header.is-open{background:var(--row-active-bg);border-bottom-color:var(--row-hover-bg)}.lsh-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.progress-text{font-size:var(--fs-secondary);color:#1e40af;font-weight:500}.pending-locked-badge{color:#c2410c;white-space:nowrap;background:#fff7ed;border:1px solid #fed7aa;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:4px 12px;font-size:.75rem;font-weight:700;display:inline-flex}.pending-done-badge{color:#15803d;white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:20px;flex-shrink:0;align-items:center;padding:4px 12px;font-size:.75rem;font-weight:700;display:inline-flex}.pending-return-bar{border-radius:var(--radius);color:#166534;font-size:var(--fs-secondary);background:#f0fdf4;border:1px solid #bbf7d0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.item-group-block--done .locked-conclusion{background:#f0fdf4;border-color:#bbf7d0}.lab-sample-list>.lab-card-locked{opacity:.9;border-top-color:#fde68a;border-bottom-color:#fde68a;border-right-color:#fde68a}.lab-sample-list>.lab-card-locked>.lab-sample-header,.lab-sample-list>.lab-card-locked>.lab-sample-header--link:hover{background:#fffbeb}.lab-pending-body .item-group-block-hd{font-size:.95rem}.item-group-block .lab-item-section:last-child{margin-bottom:0}.lab-testers-bar{border-bottom:1px solid var(--border-color);background:#fff;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:9px 20px;font-size:.82rem;display:flex}.lab-testers-label{color:var(--text-primary);white-space:nowrap;flex-shrink:0;padding-top:3px;font-weight:400}.lab-item-section{border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;overflow:hidden}.lab-item-header{background:var(--bg-page);border-bottom:1px solid var(--border-color);-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;display:flex}.lab-item-title{font-weight:400;font-size:var(--fs-body);color:var(--text-primary);flex:1}.item-status-badge{white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:.75rem;font-weight:600}.lab-item-section>.sub-test-rows,.lab-item-section>.locked-conclusion{margin:12px 14px}.sub-test-rows{flex-direction:column;gap:12px;display:flex}.sub-test-row{border:1px solid var(--border-color);border-left:3px solid var(--group-accent-blue);border-radius:var(--radius);background:#f8fafc;padding:14px 16px}.sub-test-row.is-pass{background:#f0fdf4;border-color:#86efac}.sub-test-row.is-fail{background:#fef2f2;border-color:#fca5a5}.sub-test-row.is-cancelled{opacity:.85;background:#f8fafc;border-color:#cbd5e1}.sub-test-row-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sub-test-name{font-size:.87rem;font-weight:400}.sub-test-method{color:var(--text-muted);margin-top:2px;font-size:.75rem;font-style:italic}.result-waiting{color:#475569;background:#f1f5f9}.result-running{background:var(--yellow-bg);color:#92400e}.result-cancelled{color:#334155;background:#e2e8f0}.pass-timestamps{color:var(--green-text);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:.73rem;display:flex}.pass-timestamps-attempts{color:var(--yellow-text)}.locked-conclusion{border-radius:var(--radius);background:#fff7ed;border:1px solid #fde68a;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;font-size:.82rem;display:flex}.locked-conclusion-note{color:#c2410c;margin-left:auto;font-size:.77rem}.lab-detail-screen>.lab-sample-card>.lab-sample-body{display:block}.lab-item-header--fold{cursor:pointer}.lab-item-header--fold:hover{background:#eef2f7}.lab-item-body{padding-top:10px}.lab-item-body>.sub-test-rows{margin:0 14px 12px}.lab-item-locked-notice{color:#c2410c;border-radius:var(--radius-sm);background:#fff7ed;border:1px solid #fed7aa;margin:0 14px 10px;padding:6px 14px;font-size:.78rem;font-weight:400}.lab-receipt-subtitle{color:var(--text-muted);padding:0 14px 8px;font-size:.78rem}.badge-in-progress{color:#1e40af;background:#dbeafe}.item-group-badge{color:#6d28d9;background:#ede9fe;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.sub-test-row.is-running{background:#fff5f5;border-color:#fca5a5}.sub-test-rows .sub-test-row-header{margin-bottom:12px}.sub-test-row.is-pass>.sub-test-row-header,.sub-test-row.is-cancelled>.sub-test-row-header{margin-bottom:0}.sub-test-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sub-test-controls--spaced{margin-top:10px}.sub-test-controls select,.sub-test-controls input[type=number]{border:1px solid var(--border-color);border-radius:var(--radius);background:#fff;outline:none;padding:6px 11px;font-family:inherit;font-size:.82rem}.sub-test-controls select:focus,.sub-test-controls input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61f}.sub-test-controls input[type=number]{width:82px}.sub-test-controls select:disabled{cursor:not-allowed;opacity:.7;background:#f1f5f9}.ts-timestamp{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.run-eta{color:#1e40af;white-space:nowrap;font-size:.72rem}.run-eta--near{color:#b45309;font-weight:600}.run-eta--over{color:var(--red-text);font-weight:700}.retry-history{border:1px solid var(--orange-border);border-radius:var(--radius);background:#fff7ed;margin:10px 0 4px;padding:10px 14px}.retry-history--branch{font-size:.73rem}.retry-history-title{color:#92400e;margin-bottom:6px;font-size:.75rem;font-weight:400}.retry-attempt{color:#92400e;border-bottom:1px dashed #fde68a;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 0;font-size:.78rem;display:flex}.retry-history--branch .retry-attempt{font-size:.72rem}.retry-attempt:last-child{border-bottom:none}.retry-attempt .ts-timestamp{color:#b45309}.subtest-operator-row{margin:6px 0 4px}.subtest-operator-select{border-radius:var(--radius);color:#3730a3;cursor:pointer;background:#eef2ff;border:1px solid #c7d2fe;outline:none;max-width:100%;padding:4px 10px;font-family:inherit;font-size:.78rem}.subtest-operator-select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.subtest-operator-select:disabled{cursor:not-allowed;opacity:.7}.plan-date-icon-btn{cursor:pointer;vertical-align:middle;filter:grayscale();opacity:.5;width:24px;height:24px;transition:all var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;font-size:1rem;line-height:1;display:inline-flex;position:relative}.plan-date-icon-btn:hover{opacity:.85;background:#f1f5f9}.plan-date-icon-btn.has-plan{filter:none;opacity:1;background:#ecfdf5}.plan-date-icon-btn.has-plan:hover{background:#d1fae5}.plan-date-icon-dot{border:1.5px solid var(--bg-card);background:#ef4444;border-radius:50%;width:8px;height:8px;position:absolute;top:0;right:0}.export-icon-btn{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:.95rem;line-height:1;transition:background .15s,border-color .15s;display:inline-flex;position:relative}.export-icon-btn:focus-visible{outline-offset:1px;outline:2px solid #6366f1}.export-icon-dot{border:1.5px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;top:-3px;right:-3px}.export-icon-dot--todo{background:#f97316}.export-icon-dot--done{background:#16a34a}.export-icon-btn.dyn-icon-btn{vertical-align:middle;margin-left:2px}.export-icon-btn.dyn-icon-btn--empty{border-color:var(--border-color);filter:grayscale();opacity:.6}.export-icon-btn.dyn-icon-btn--empty:hover:not(:disabled){opacity:.85;background:#f1f5f9}.export-icon-btn.dyn-icon-btn--has{border-color:#60a5fa}.export-icon-btn.dyn-icon-btn--has:hover:not(:disabled){background:#eff6ff}.export-icon-btn.dyn-icon-btn:disabled{opacity:.35;cursor:not-allowed}.branch-list{border-left:3px solid var(--blue-border);flex-direction:column;gap:8px;margin-top:10px;padding-left:18px;display:flex}.branch-row{border:1px solid var(--border-color);border-left:3px solid var(--group-accent-blue);border-radius:var(--radius);background:#fff;padding:12px 14px}.branch-row.is-running{background:#fff5f5;border-color:#fca5a5}.branch-row.is-pass{background:#f0fdf4;border-color:#86efac}.branch-row.is-fail{background:#fef2f2;border-color:#fca5a5}.branch-row.is-cancelled{opacity:.85;background:#f8fafc;border-color:#cbd5e1}.branch-row-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.branch-name{font-size:.83rem;font-weight:400}.branch-method{color:var(--text-muted);margin-top:2px;font-size:.73rem;font-style:italic}.branch-retry-all{margin-top:8px}.item-closeout-section{background:#f0fdf4;border-top:1px solid #bbf7d0;margin-top:8px;padding:12px 14px}.item-closeout-section h4{color:var(--green-text);margin:0 0 8px;font-size:.87rem;font-weight:400}.closeout-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.conclusion-select{border:1px solid var(--border-color);border-radius:5px;padding:6px 8px;font-family:inherit;font-size:.85rem}.machine-run-note{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.status-running-open{color:#92400e;background:#fef3c7}.status-running-full{background:var(--red-bg);color:#9b1c1c}.machine-status-badge{border-radius:20px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.btn-mark-full,.btn-reopen-eq{border-radius:var(--radius-sm);cursor:pointer;color:#fff;border:none;padding:5px 12px;font-size:.8rem;font-weight:600}.btn-mark-full{background:#f59e0b}.btn-mark-full:hover{background:#d97706}.btn-reopen-eq{background:#16a34a}.btn-reopen-eq:hover{background:#15803d}@media (width<=768px){.sub-test-controls{gap:6px;width:100%}.sub-test-controls select{flex:1;min-width:120px}.sub-test-controls input[type=number]{width:80px}.closeout-controls{flex-direction:column;align-items:stretch;gap:8px}.closeout-controls select{width:100%}.lab-sample-header{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px}.lsh-left,.lsh-right{width:100%}.lsh-right{flex-wrap:wrap}.sub-test-row-header{flex-direction:column;gap:8px}.lab-testers-bar{flex-direction:column;gap:6px}.lab-sample-body{padding:12px}}.plan-date-modal-body{flex-direction:column;gap:14px;display:flex}.plan-date-modal-field{color:var(--text-muted);flex-direction:column;gap:5px;font-size:.78rem;font-weight:700;display:flex}.plan-date-modal-field input,.plan-date-modal-field textarea{border:1px solid var(--border-color);border-radius:var(--radius);box-sizing:border-box;padding:9px 11px;font-family:inherit;font-size:.9rem}.plan-date-modal-field textarea{resize:vertical}.plan-date-modal-field input:disabled,.plan-date-modal-field textarea:disabled{color:var(--text-muted);background:#f1f5f9}.plan-date-modal-checkbox{color:var(--text-muted);align-items:center;gap:8px;font-size:.78rem;font-weight:700;display:flex}.plan-date-modal-warning{color:#b45309;border-radius:var(--radius);background:#fef3c7;border:1px solid #f59e0b;padding:8px 10px;font-size:.78rem;font-weight:700}.lab-progress-panel{flex-direction:column;gap:16px;display:flex}.progress-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.labdd{position:relative}.labdd-trigger{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:9px 12px;font-family:inherit;font-size:.85rem;display:flex}.labdd-trigger:after{content:"▾";color:var(--text-muted);font-size:.7rem}.labdd-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);z-index:60;min-width:220px;max-width:320px;max-height:320px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 4px 14px #00000026}.labdd-row{border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.labdd-row:hover{background:#f1f5f9}.labdd-row input[type=checkbox]{cursor:pointer;flex-shrink:0}.labdd-row span{cursor:pointer;flex:1;font-size:.85rem}.labdd-row-all{border-bottom:1px solid var(--border-color);margin-bottom:4px;padding-bottom:8px}.pg-gantt{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-card);min-height:240px;max-height:calc(100vh - 230px);position:relative;overflow:auto}.pg-gantt--popup{max-height:calc(90vh - 260px)}.pg-gantt-inner{position:relative}.pg-gantt-head{z-index:20;border-bottom:1px solid var(--border-color);height:44px;display:flex;position:sticky;top:0}.pg-gantt-corner{z-index:21;box-sizing:border-box;border-right:2px solid var(--border-color);background:#f8fafc;flex:0 0 280px;width:280px;position:sticky;left:0}.pg-gantt-head-days{background:var(--bg-card);flex-shrink:0}.pg-gantt-body{position:relative}.pg-gantt-bg{pointer-events:none;background-image:linear-gradient(to right, var(--border-color) 1px, transparent 1px);background-size:34px 100%;position:absolute;top:0;bottom:0}.pg-line{align-items:stretch;display:flex;position:absolute;left:0;right:0}.pg-line--group-gap>*{border-top:16px solid #0000}.pg-line--item-gap>*{border-top:8px solid #0000}.pg-line--group-gap>:first-child,.pg-line--item-gap>:first-child{border-top-color:var(--bg-card);background-clip:padding-box}.pg-line>:first-child{z-index:10;border-right:2px solid var(--border-color);flex:0 0 280px;width:280px;position:sticky;left:0}.progress-gantt-month-header{border-bottom:1px solid var(--border-color);background:#eef2f7;height:18px;position:relative}.progress-gantt-month-tick{color:#000;border-right:1px solid var(--border-color);box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;font-size:.96rem;font-weight:700;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.progress-gantt-date-header{background:#f8fafc;height:25px;position:relative}.progress-gantt-day-tick{color:var(--text-muted);box-sizing:border-box;justify-content:center;align-items:center;font-size:.62rem;font-weight:700;display:flex;position:absolute;top:0;bottom:0}.pg-day-tick-weekend{color:#dc2626}.pg-day-tick-holiday{color:#7e22ce;background:#f3e8ff;font-weight:700}.progress-gantt-month-line{z-index:1;background:#1e40af8c;width:2px;position:absolute;top:0;bottom:0}.progress-gantt-today-col{z-index:0;background:#dbeafe;position:absolute;top:0;bottom:0}.progress-gantt-today-line{z-index:5;border-left:2px dashed #1e40af8c;width:0;position:absolute;top:0;bottom:0}.progress-gantt-holiday-col{z-index:1;box-sizing:border-box;pointer-events:none;background:#9333ea14;border-left:1px dashed #9333ea66;border-right:1px dashed #9333ea66;position:absolute;top:0;bottom:0}.progress-gantt-holiday-label{writing-mode:vertical-rl;text-orientation:mixed;color:#7e22ce;white-space:nowrap;opacity:.85;font-size:11px;font-weight:600;position:absolute;top:8px;left:50%;transform:translate(-50%)}.progress-gantt-label-row{box-sizing:border-box;border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-direction:column;justify-content:center;gap:2px;padding:4px 12px;display:flex}.progress-gantt-label-row.pg-label-jump{cursor:pointer}.progress-gantt-label-row:hover{background:#f1f5f9}.pg-label-test{color:var(--text-primary);-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;font-size:.8rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.progress-gantt-label-row.pg-label-parent{background:#f8fafc}.progress-gantt-label-row.pg-label-child .pg-label-test{padding-left:14px;font-style:italic;font-weight:500}.progress-gantt-label-row.pg-label-noplan .pg-label-test{color:#c2410c}.progress-gantt-track-row{z-index:2;border-bottom:1px solid var(--border-color);box-sizing:border-box;flex-shrink:0;align-items:center;display:flex;position:relative}.progress-gantt-bar{box-sizing:border-box;height:28px;position:absolute;top:calc(50% - 14px)}.pg-bar-plan-frame{box-sizing:border-box;border-radius:6px;position:absolute;top:0;bottom:0;box-shadow:0 1px 2px #00000026}.pg-bar-plan-frame-offday{pointer-events:none;background:#dc262626;position:absolute;top:0;bottom:0}.gantt-bar-planned{background:#dbe4ee;border:1px solid #94a3b8}.gantt-bar-planned_late{background:#dbe4ee;border:2px dashed #ee9292}.gantt-bar-running{background:#f8fafc;border:1px solid #e2e8f0}.gantt-bar-running_late{background:#fecaca;border:1px solid #fca5a5}.gantt-bar-done{background:#f8fafc;border:1px solid #e2e8f0}.pg-bar-fill{background:#86efac;position:absolute;top:0;bottom:0}.pg-bar-fill-done{background:#64748b}.pg-bar-late-label,.pg-bar-running-label,.pg-bar-done-label,.pg-bar-due-label{white-space:nowrap;z-index:2;pointer-events:none;font-size:.68rem;font-weight:700;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.pg-bar-late-label{color:#dc2626}.pg-bar-running-label{color:#166534}.pg-bar-done-label{color:#000}.pg-bar-due-label{color:#b45309}.pg-bar-due-today{border:2px dashed #f59e0b}.pg-bar-eta-box{box-sizing:border-box;z-index:5;pointer-events:none;background:0 0;border:2px solid #16a34a;border-radius:6px;height:28px;position:absolute;top:calc(50% - 14px)}.pg-bar-overrun{border:2px solid #dc2626}.pg-bar-due-eta{border:2px solid #f59e0b}.pg-bar-adjusted{z-index:4;color:#fff;cursor:pointer;background:#f59e0b;border:none;border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;padding:0;font-size:.62rem;display:flex;position:absolute;top:-7px;right:-7px;box-shadow:0 1px 3px #00000059}.pg-bar-daterange{white-space:nowrap;color:var(--text-muted);font-size:.72rem;font-weight:600;position:absolute;top:calc(50% - 8px)}.pg-bar-plan-actions,.pg-noplan-badge,.pg-noplan-done-badge{z-index:3;position:sticky;left:288px}.pg-bar-plan-actions{align-items:center;gap:6px;display:inline-flex}.pg-bar-edit-btn,.pg-bar-lock-btn{cursor:pointer;white-space:nowrap;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:20px;justify-content:center;align-items:center;font-family:inherit;font-size:.72rem;font-weight:700;display:inline-flex}.pg-bar-edit-btn{border:1px solid var(--border-color);width:24px;height:24px;color:var(--text-primary);background:#ffffffe6;padding:0}.pg-bar-edit-btn:hover{background:#f1f5f9f2}.pg-bar-lock-btn{color:#1d4ed8;background:#eff6ffeb;border:1px solid #93c5fd;padding:3px 10px}.pg-bar-lock-btn:hover{background:#dbeafef2}.pg-noplan-badge,.pg-noplan-done-badge{box-sizing:border-box;white-space:nowrap;border-radius:6px;align-items:center;gap:4px;height:28px;padding:0 10px;font-family:inherit;font-size:.72rem;font-weight:700;display:inline-flex}.pg-noplan-badge{cursor:pointer;color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.pg-noplan-badge:hover{background:#ffedd5}.pg-noplan-badge--static{cursor:default}.pg-noplan-done-badge{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0}.pg-group-header{box-sizing:border-box;color:#0c2f6e;border-bottom:1px solid var(--border-color);cursor:pointer;background:#bfdbfe;align-items:center;padding:0 12px;font-size:.82rem;font-weight:700;display:flex}.pg-group-header:hover{background:#93c5fd}.pg-group-header-text{-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.pg-group-header-track,.pg-item-header-track{box-sizing:border-box;border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;display:flex;position:relative}.pg-item-sum-text{z-index:3;white-space:nowrap;color:#5b21b6;background:#ffffffeb;border:1px solid #ddd6fe;border-radius:10px;padding:1px 8px;font-size:.7rem;font-weight:600;position:sticky;left:288px}.pg-item-sum-text--late{color:#dc2626;background:#fef2f2;border-color:#fecaca}.pg-item-sum-text--done{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.progress-expand-all{margin-left:auto}.pg-item-header{box-sizing:border-box;color:#6d28d9;border-bottom:1px solid var(--border-color);background:#ede9fe;align-items:center;gap:5px;padding:0 12px 0 20px;font-size:.74rem;font-weight:700;display:flex}.pg-item-header--toggle{cursor:pointer}.pg-item-header--toggle:hover{background:#ddd6fe}.pg-item-toggle-icon{flex-shrink:0;font-size:.62rem}.pg-item-header-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.todo-flash-highlight{border-radius:8px;animation:2.2s ease-out todoFlashBorder}@keyframes todoFlashBorder{0%{box-shadow:inset 0 0 0 3px #dc2626e6}to{box-shadow:inset 0 0 0 3px #dc262600}}.pg-sample-card{max-width:min(1500px,96vw)}.progress-modal-summary{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.progress-modal-summary-item{border:1px solid var(--border-color);border-radius:var(--radius);background:#f8fafc;flex-direction:column;flex:1;gap:3px;min-width:150px;padding:10px 14px;display:flex}.progress-modal-summary-label{color:var(--text-muted);font-size:.72rem;font-weight:600}.progress-modal-summary-value{color:var(--text-primary);font-size:1rem;font-weight:700}.progress-modal-done-tag{color:#16a34a;font-size:.78rem;font-weight:700}.pg-planlog-card{max-width:520px}.planlog-summary{border:1px solid var(--border-color);border-radius:var(--radius);background:#f8fafc;flex-direction:column;gap:8px;margin-bottom:16px;padding:12px 14px;display:flex}.planlog-summary-row{justify-content:space-between;gap:10px;font-size:.85rem;display:flex}.planlog-list{flex-direction:column;gap:10px;display:flex}.planlog-entry{border:1px solid var(--border-color);border-radius:var(--radius);border-left:3px solid var(--group-accent-blue);padding:10px 12px}.planlog-entry-when{color:var(--text-muted);margin-bottom:6px;font-size:.76rem}.planlog-entry-change{flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;display:flex}.planlog-old{color:#94a3b8;text-decoration:line-through}.planlog-new{color:#166534;font-weight:700}.planlog-arrow{color:var(--text-light)}.planlog-entry-reason{color:var(--text-muted);white-space:pre-wrap;margin-top:6px;font-size:.8rem}.export-bar-host{display:contents}.export-icon-bar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px 12px;padding:8px 0 4px;display:flex}.export-icon-group{flex-wrap:nowrap;align-items:center;gap:4px;display:inline-flex}.item-header-report-icons{flex-shrink:0;align-items:center;font-weight:400;display:inline-flex}.item-header-report-icons .export-icon-bar{padding:0}.item-group-block-hd>.export-bar-host>.export-icon-bar{margin-left:auto;padding:0}.export-icon-group+.export-icon-group{border-left:1px solid var(--border-color,#e2e8f0);padding-left:12px}.export-icon-label{color:var(--text-muted,#64748b);white-space:nowrap;margin-right:2px;font-size:.72rem;font-weight:400}.export-icon-btn--bb{color:#0369a1;border-color:#bae6fd}.export-icon-btn--bb:hover{background:#e0f2fe;border-color:#7dd3fc}.export-icon-btn--rp{color:#6d28d9;border-color:#ddd6fe}.export-icon-btn--rp:hover{background:#f3e8ff;border-color:#c4b5fd}.export-icon-btn:disabled{opacity:.5;cursor:progress}.export-icon-svg{pointer-events:none;flex-shrink:0;width:16px;height:16px;display:block}.rpinfo-reportno-row{margin-bottom:4px}.rpinfo-reportno-row .dynform-fld-lbl{text-transform:capitalize}.rpinfo-ref{color:#6d28d9;font-size:.78rem;font-weight:600}.rpinfo-hf{border-top:1px dashed var(--border-color,#cbd5e1);margin-top:14px;padding-top:10px}.rpinfo-hf-title{color:#475569;margin-bottom:6px;font-size:.78rem;font-weight:700}@media (width<=768px){.export-icon-group+.export-icon-group{border-left:none;padding-left:0}}.payment-card-header .mgmt-card-right{flex-wrap:wrap;justify-content:flex-end}.sc-input{border:1px solid var(--border-color);border-radius:var(--radius);width:100%;transition:border-color var(--transition);background:#fff;outline:none;padding:8px 12px;font-family:inherit;font-size:.88rem}.sc-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61f}.sc-input:disabled{cursor:not-allowed;background:#f1f5f9}.payment-total-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.payment-total-input{flex:1;width:100%}.payment-stage-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.payment-stage-form .sc-input{flex:1;width:auto;min-width:140px}.payment-stage-list{flex-direction:column;gap:4px;display:flex}.payment-stage-row{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#fff;grid-template-columns:1fr 1fr 1fr 1.4fr;align-items:center;gap:10px;padding:7px 10px;font-size:.8rem;display:grid}.payment-stage-list--editable .payment-stage-row{grid-template-columns:1fr 1fr 1fr 1.4fr auto}.payment-stage-head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;background:0 0;border:none;padding:0 10px;font-size:.68rem;font-weight:700}.payment-stage-amount{color:var(--green-text);font-weight:700}.payment-stage-note{color:var(--text-muted);overflow-wrap:anywhere}.payment-stage-empty{color:var(--text-muted);padding:8px 10px;font-size:.8rem}.payment-stage-actions{justify-content:flex-end;gap:6px;display:inline-flex}.payment-history-section{padding-top:6px}.payment-history-section h3{letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.section-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.section-subtitle{color:var(--text-muted);margin-top:4px;font-size:.8rem;display:block}.payment-history-search-wrap{min-width:260px}.payment-history-list{flex-direction:column;gap:6px;display:flex}.payment-history-card{border:1px solid var(--border-color);border-radius:var(--radius);background:#f8fafc;overflow:hidden}.payment-history-row{cursor:pointer;flex-wrap:wrap;align-items:center;gap:14px;padding:9px 14px;font-size:.8rem;display:flex}.payment-history-id{flex-direction:column;flex:1;gap:1px;min-width:160px;display:flex}.payment-history-client{color:var(--text-primary);font-weight:700}.payment-history-product{color:var(--text-muted);font-size:.73rem}.payment-history-pct{color:var(--green-text);font-weight:700}.payment-history-by{color:#5b21b6;font-weight:600}.payment-history-at{color:var(--text-muted)}.payment-history-detail{background:#fff;display:none}.payment-history-detail.is-open{border-top:1px solid var(--border-color);padding:14px 16px;display:block}.payment-history-actions{justify-content:flex-end;gap:8px;margin-bottom:8px;display:flex}@media (width<=768px){.payment-stage-row,.payment-stage-list--editable .payment-stage-row{grid-template-columns:1fr 1fr}.payment-history-row{flex-direction:column;align-items:flex-start;gap:4px}}.payment-stage-form .sc-input.payment-stage-date{flex:none;width:150px;min-width:0}.info-fields .payment-stage-row{font-size:var(--fs-body)}.approval-unit-name{font-size:var(--fs-body);color:var(--text-primary);font-weight:400}.approval-client{font-weight:700;font-size:var(--fs-body);color:var(--text-primary)}.approval-payment-pct{font-weight:400;font-size:var(--fs-body);color:var(--text-primary);white-space:nowrap}.approval-payment-pct.approval-payment-pct--low,.info-fields>dd.approval-payment-pct--low{color:#dc2626;font-weight:700}.approval-pending-text{color:#ca8a04;font-weight:600;font-size:var(--fs-body);white-space:nowrap}.approval-review-text,.info-sheet-note.approval-review-text{color:#15803d;font-weight:600;font-size:var(--fs-body);white-space:nowrap}.approval-textarea{border:1.5px solid var(--border-color);border-radius:var(--radius);resize:vertical;width:100%;min-height:80px;transition:border-color var(--transition), box-shadow var(--transition);background:#fff;outline:none;padding:10px 14px;font-family:inherit;font-size:.88rem}.approval-textarea:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1f}.review-open-badge{color:#1d4ed8;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:.74rem;font-weight:700;display:inline-flex}.intake-mgmt-list .approval-unit-card>.mgmt-card-header{margin-bottom:-10px}.archive-toolbar{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;padding:16px 20px;display:flex}.archive-filters{flex-wrap:wrap;flex:1;align-items:flex-end;gap:16px;display:flex}.archive-summary{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.arch-stat{border-radius:20px;align-items:center;gap:5px;padding:5px 14px;font-size:.82rem;font-weight:500;display:inline-flex}.arch-stat strong{font-weight:800}.arch-stat--total{color:var(--text-primary);border:1px solid var(--border-color);background:#f1f5f9}.archive-list{flex-direction:column;gap:6px;display:flex}.archive-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition);overflow:hidden}.archive-card:hover{box-shadow:var(--shadow)}.archive-list>.archive-card{box-shadow:none}.archive-list>.archive-card>.archive-card-header{padding-left:12px}.archive-list>.archive-card:hover{box-shadow:none}.archive-card-header{background:var(--bg-card);transition:background var(--transition);-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 16px;display:flex}.archive-card-header:hover{background:var(--row-hover-bg)}.archive-card-header--link{cursor:pointer}.lab-detail-screen .archive-card-header{background:var(--row-active-bg)}.archive-card-left{flex-wrap:wrap;flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.archive-card-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.archive-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.archive-top-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.archive-client{font-weight:700;font-size:var(--fs-body);color:#0c2f6e}.archive-product-list{flex-direction:column;gap:4px;margin-top:2px;display:flex}.archive-product-list .item-group-block{margin-bottom:4px}.archive-product-list .item-group-block-hd{font-size:var(--fs-secondary);margin-bottom:6px}.archive-product-row{font-size:var(--fs-secondary);color:var(--text-primary);background:#eef2ff;border-radius:6px;padding:4px 10px;font-weight:400}.archive-partial-badge{color:#c2410c;white-space:nowrap;background:#fff7ed;border:1px solid #fed7aa;border-radius:20px;padding:3px 9px;font-size:.7rem;font-weight:700}.archive-detail-toolbar{margin-bottom:10px}.archive-card-body{border-top:1px solid var(--border-color);display:none}.archive-card-body.open{display:block}.archive-dates-row{border-bottom:1px solid var(--border-color);background:#fafafa;flex-wrap:wrap;gap:6px 18px;padding:10px 16px;display:flex}.archive-dates-row span{color:var(--text-muted);font-size:.75rem}.archive-personnel-grid{border-top:1px solid var(--border-color);background:#fff;flex-direction:column;gap:0;display:flex;overflow:hidden}.archive-personnel-row{border-bottom:1px solid #f1f5f9;grid-template-columns:minmax(160px,220px) minmax(0,1fr) auto;align-items:baseline;gap:2px 12px;padding:7px 18px;font-size:.79rem;line-height:1.4;display:grid}.archive-personnel-row:last-child{border-bottom:none}.archive-personnel-row:nth-child(odd){background:#f8fafc}.archive-personnel-row:nth-child(2n){background:#fff}.archive-personnel-row--testers{grid-template-columns:minmax(160px,220px) minmax(0,1fr)}.archive-personnel-label{color:var(--text-primary);white-space:normal;overflow-wrap:break-word;font-size:.77rem;font-weight:400}.archive-personnel-value{color:var(--text-primary);overflow-wrap:break-word;font-weight:500}.archive-personnel-value--testers{font-weight:400}.archive-personnel-date{color:var(--text-muted);white-space:nowrap;font-size:.74rem}.archive-link-section{border-top:1px solid var(--border-color);background:#fff;flex-direction:column;align-items:flex-start;gap:10px;padding:14px 18px;display:flex}.archive-link-view,.archive-link-edit-row{flex-wrap:wrap;align-items:center;gap:10px;width:100%;display:flex}.archive-link-view a{color:var(--blue);font-size:var(--fs-secondary);overflow-wrap:anywhere;font-weight:400}.archive-link-edit-row input{border:1px solid var(--border-color);border-radius:var(--radius);background:#fff;outline:none;flex:1;min-width:240px;padding:8px 13px;font-family:inherit;font-size:.88rem}.archive-link-edit-row input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61f}.archive-link-invalid{color:var(--red-text);font-size:var(--fs-secondary);overflow-wrap:anywhere}.archive-link-empty{color:var(--text-muted);font-size:var(--fs-secondary)}.archive-purge-done{font-size:var(--fs-secondary);color:var(--green-text);background:var(--green-bg);border-radius:var(--radius);border:1px solid #86efac;padding:7px 12px;font-weight:700}.equipment-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:20px;display:grid}.equipment-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border-color);transition:transform var(--transition), box-shadow var(--transition);position:relative;overflow:hidden}.equipment-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.eq-card-top{border-bottom:1px solid var(--border-color);background:#f8fafc;flex-direction:column;gap:4px;padding:16px 20px;display:flex}.eq-card-status-row{margin-bottom:4px}.eq-name{font-size:.95rem;font-weight:700;line-height:1.3}.eq-code{color:var(--text-muted);border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#f1f5f9;align-self:flex-start;padding:2px 8px;font-family:Courier New,monospace;font-size:.72rem;display:inline-block}.eq-card-body{padding:16px 20px}.eq-entry-progress+.eq-entry-progress{border-top:1px dashed var(--border-color);margin-top:12px;padding-top:12px}.eq-entry-meta{flex-direction:column;gap:2px;display:flex}.eq-entry-client{color:var(--text-primary);font-size:.83rem;font-weight:600}.eq-entry-test{color:var(--text-muted);font-size:.76rem}.eq-entry-end{color:#b45309;font-size:.73rem;font-weight:500}.eq-card-body .eq-action{margin-top:12px}.equipment-card .status-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:4px 12px;font-size:.77rem;font-weight:700;display:inline-flex}.equipment-card .status-ready{background:var(--green-bg);color:#166534}.equipment-card .status-running{background:var(--red-bg);color:#9b1c1c}.equipment-card .status-running-open{color:#92400e;background:#fef3c7}.progress-container{margin-top:12px}.progress-label{color:var(--text-muted);justify-content:space-between;margin-bottom:6px;font-size:.73rem;font-weight:500;display:flex}.progress-bar-wrap{background:#e2e8f0;border-radius:99px;height:10px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:99px;height:100%;transition:width .6s;position:relative;overflow:hidden}.progress-bar-fill.near-complete{background:linear-gradient(90deg,#16a34a,#4ade80)}.progress-bar-fill.overrun{background:linear-gradient(90deg,#dc2626,#f87171)}.progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff59,#0000);animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}.bottleneck-badge{color:#92400e;border-radius:var(--radius-sm);z-index:1;background:#fffbeb;border:1.5px solid #f59e0b;padding:3px 8px;font-size:.68rem;font-weight:700;animation:1.4s ease-in-out infinite bottleneckFlash;position:absolute;top:10px;right:10px}@keyframes bottleneckFlash{0%,to{opacity:1}50%{opacity:.5}}.overview-empty{grid-column:1/-1}@media (width<=768px){.equipment-grid{grid-template-columns:1fr}}.company-row-accent{border-left:4px solid var(--group-accent-blue);border-radius:8px}
