:root{--color-primary:#1e3a5f;--color-primary-light:#2d5a8e;--color-primary-dark:#152d4a;--color-primary-ghost:#1e3a5f0f;--color-secondary:#0072bc;--color-accent:#f58220;--color-accent-light:#ff9a44;--color-success:#10b981;--color-success-light:#d1fae5;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-danger:#ef4444;--color-danger-light:#fee2e2;--color-info:#0072bc;--color-info-light:#dbeafe;--status-approved:#10b981;--status-pending:#f59e0b;--status-rejected:#ef4444;--status-expired:#6b7280;--status-ifa:#0072bc;--status-ifr:#7c3aed;--status-ifc:#10b981;--status-ifi:#06b6d4;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #0000000f, 0 2px 4px -2px #0000000a;--shadow-lg:0 10px 15px -3px #0000000f, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #0000000f, 0 8px 10px -6px #0000000a;--shadow-glow:0 0 20px #1e3a5f1a;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--transition-spring:.3s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:240px;--sidebar-collapsed:64px;--header-height:56px;--content-max-width:1400px;--z-sidebar:100;--z-header:90;--z-modal:200;--z-toast:300;--z-tooltip:400}[data-theme=light]{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-tertiary:#f0f2f5;--bg-card:#fff;--bg-card-hover:#f8f9fb;--bg-input:#f5f7fa;--bg-sidebar:#fff;--bg-overlay:#0000004d;--text-primary:#1a202c;--text-secondary:#4a5568;--text-tertiary:#a0aec0;--text-inverse:#fff;--border-color:#e8ecf1;--border-color-hover:#d1d8e0;--border-color-focus:var(--color-primary);--scrollbar-track:#f5f7fa;--scrollbar-thumb:#cbd5e0}[data-theme=dark]{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#1c2331;--bg-card:#1c2331;--bg-card-hover:#242d3d;--bg-input:#1c2331;--bg-sidebar:#0d1117;--bg-overlay:#0009;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-tertiary:#6e7681;--text-inverse:#0d1117;--border-color:#8b949e1f;--border-color-hover:#8b949e40;--border-color-focus:var(--color-secondary);--scrollbar-track:#161b22;--scrollbar-thumb:#30363d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-light)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}a{color:var(--color-secondary);text-decoration:none}a:hover{color:var(--color-primary)}img{max-width:100%;height:auto}.hidden{display:none!important}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes countUp{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-normal) forwards}.animate-slide-up{animation:slideInUp var(--transition-slow) forwards}.animate-pulse{animation:2s infinite pulse}.screen{display:none}.screen.active{display:flex}#login-screen{background:var(--bg-secondary);background-image:radial-gradient(at 20%,#1e3a5f0a 0%,#0000 50%),radial-gradient(at 80% 20%,#0072bc08 0%,#0000 50%),radial-gradient(at 50% 80%,#f5822005 0%,#0000 50%);justify-content:center;align-items:center;min-height:100vh}.login-container{width:100%;max-width:400px;padding:var(--space-8)}.login-brand{text-align:center;margin-bottom:var(--space-10)}.login-logos{justify-content:center;align-items:center;gap:var(--space-6);margin-bottom:var(--space-6);animation:.6s fadeIn;display:flex}.partner-logo{object-fit:contain;filter:grayscale(0);width:auto;height:40px;transition:all var(--transition-normal)}.partner-logo:hover{transform:scale(1.05)}.brand-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);color:var(--color-primary);margin-bottom:var(--space-2);letter-spacing:-.02em}.brand-subtitle{color:var(--text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.brand-project{color:var(--text-tertiary);font-size:var(--font-size-sm);margin-top:var(--space-1)}.login-form{gap:var(--space-5);flex-direction:column;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.form-group input{padding:var(--space-3) var(--space-4);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--font-size-base);font-family:var(--font-family);transition:all var(--transition-fast)}.form-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.form-group input::placeholder{color:var(--text-tertiary)}.form-error{color:var(--color-danger);font-size:var(--font-size-sm);text-align:center;padding:var(--space-2);background:var(--color-danger-light);border-radius:var(--radius-md)}.login-footer{text-align:center;margin-top:var(--space-8)}#app-shell{min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-color);height:100vh;z-index:var(--z-sidebar);transition:width var(--transition-normal);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}.sidebar-header{padding:var(--space-4) var(--space-4);height:var(--header-height);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.sidebar-brand{align-items:center;gap:var(--space-3);display:flex}.sidebar-logo-img{object-fit:contain;width:auto;height:42px}.sidebar-collapsed .sidebar-logo-img{height:32px}.sidebar-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);white-space:nowrap;letter-spacing:.05em}.sidebar-collapsed .sidebar-title,.sidebar-collapsed .nav-label,.sidebar-collapsed .user-details{opacity:0;width:0;overflow:hidden}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);cursor:pointer;white-space:nowrap;text-decoration:none;display:flex}.nav-item:hover{background:var(--color-primary-ghost);color:var(--text-primary);transform:translate(2px)}.nav-item.active{background:var(--color-primary-ghost);color:var(--color-primary);font-weight:var(--font-weight-semibold);box-shadow:inset 3px 0 0 var(--color-primary)}.nav-icon{font-size:var(--font-size-lg);text-align:center;flex-shrink:0;width:24px}.nav-divider{background:var(--border-color);height:1px;margin:var(--space-3) var(--space-4)}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--border-color)}.user-info{align-items:center;gap:var(--space-3);display:flex}.user-avatar{border-radius:var(--radius-full);background:var(--color-primary);width:36px;height:36px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-details{flex-direction:column;display:flex;overflow:hidden}.user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-role{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.main-content{margin-left:var(--sidebar-width);min-height:100vh;width:calc(100vw - var(--sidebar-width));transition:margin-left var(--transition-normal), width var(--transition-normal);box-sizing:border-box;flex-direction:column;display:flex;overflow-x:hidden}.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed);width:calc(100vw - var(--sidebar-collapsed))}.top-header{height:var(--header-height);padding:0 var(--space-6);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:var(--z-header);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:var(--space-4);display:flex}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.header-right{align-items:center;gap:var(--space-3);display:flex}.header-search{position:relative}.header-search input{width:240px;padding:var(--space-2) var(--space-4);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-family);transition:all var(--transition-fast)}.header-search input:focus{border-color:var(--color-primary);width:300px;box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.notification-btn{position:relative}.badge{background:var(--color-danger);color:#fff;min-width:18px;height:18px;font-size:10px;font-weight:var(--font-weight-bold);border-radius:var(--radius-full);justify-content:center;align-items:center;padding:0 4px;display:flex;position:absolute;top:-4px;right:-4px}.page-container{padding:var(--space-3) var(--space-4);box-sizing:border-box;flex:1;width:100%;overflow-x:hidden}.page{display:none}.page.active{animation:.3s fadeIn;display:block}.page-placeholder{text-align:center;min-height:400px;color:var(--text-tertiary);justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.placeholder-icon{opacity:.5;font-size:4rem}.mobile-only{display:none}@media (width<=1024px){#app-shell{grid-template-columns:1fr}.sidebar{width:260px;box-shadow:none;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:4px 0 24px #0003}.main-content,.sidebar-collapsed .main-content{width:100vw;margin-left:0}.mobile-only{display:flex}.header-search input{width:160px}.header-search input:focus{width:200px}.sidebar.open:after{content:"";z-index:-1;background:#0000004d;position:fixed;inset:0 0 0 260px}}@media (width<=640px){.page-container{padding:8px}.header-right{gap:var(--space-2)}.header-search{display:none}.top-header{padding:0 12px}.page-title{font-size:var(--font-size-base)}.login-container{padding:24px 20px}.login-logos{gap:12px}.partner-logo{height:30px}.brand-title{font-size:var(--font-size-2xl)}.brand-subtitle{font-size:var(--font-size-sm)}.brand-project{font-size:var(--font-size-xs)}}.google-signin-btn{width:100%;font-size:15px;font-weight:600;font-family:var(--font-family);color:#3c4043;cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:12px;justify-content:center;align-items:center;gap:12px;padding:14px 24px;transition:all .2s;display:flex;box-shadow:0 1px 3px #00000014}.google-signin-btn:hover{background:#f8f9fa;border-color:#d0d0d0;transform:translateY(-1px);box-shadow:0 2px 8px #0000001f}.google-signin-btn:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.google-icon{flex-shrink:0}.google-btn-text{white-space:nowrap}[data-theme=dark] .google-signin-btn{color:#e0e0e0;background:#2a2a2a;border-color:#444}[data-theme=dark] .google-signin-btn:hover{background:#333;border-color:#555}.login-divider{color:var(--text-tertiary);font-size:var(--font-size-sm);align-items:center;gap:16px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.demo-signin-btn{border:1px dashed var(--border-color);width:100%;font-size:13px;font-weight:500;font-family:var(--font-family);color:var(--text-tertiary);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;transition:all .2s;display:flex}.demo-signin-btn:hover{background:var(--bg-secondary);border-color:var(--text-tertiary);color:var(--text-secondary)}.nav-item.nav-disabled{display:none!important}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 4px 14px #1e3a5f40}.btn-primary:hover{background:var(--color-primary-light);transform:translateY(-1px);box-shadow:0 6px 20px #1e3a5f59}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{border-color:var(--color-primary);background:var(--color-primary-ghost)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#dc2626;box-shadow:0 4px 14px #ef44444d}.btn-ghost{color:var(--text-secondary);padding:var(--space-2) var(--space-3);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none}.btn-ghost:hover{background:var(--color-primary-ghost);color:var(--text-primary)}.btn-icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-lg);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background:var(--color-primary-ghost);color:var(--text-primary)}.btn-full{width:100%}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-md)}.btn-loader{border-radius:var(--radius-full);border:2px solid #ffffff4d;border-top-color:#fff;width:16px;height:16px;animation:.6s linear infinite spin}.status-badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;display:inline-flex}.status-badge:before{content:"";border-radius:var(--radius-full);width:6px;height:6px}.status-approved{color:var(--status-approved);background:#10b9811a}.status-approved:before{background:var(--status-approved)}.status-pending{color:var(--status-pending);background:#f59e0b1a}.status-pending:before{background:var(--status-pending)}.status-rejected{color:var(--status-rejected);background:#ef44441a}.status-rejected:before{background:var(--status-rejected)}.status-expired{color:var(--status-expired);background:#6b72801a}.status-expired:before{background:var(--status-expired)}.status-ifa{color:var(--status-ifa);background:#0072bc14}.status-ifa:before{background:var(--status-ifa)}.status-ifr{color:var(--status-ifr);background:#7c3aed14}.status-ifr:before{background:var(--status-ifr)}.status-ifc{color:var(--status-ifc);background:#10b9811a}.status-ifc:before{background:var(--status-ifc)}.status-ifi{color:var(--status-ifi);background:#06b6d41a}.status-ifi:before{background:var(--status-ifi)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-fast)}.card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.data-table th:first-child{border-radius:var(--radius-md) 0 0 0}.data-table th:last-child{border-radius:0 var(--radius-md) 0 0}.data-table td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--text-primary);border-bottom:1px solid var(--border-color);transition:background var(--transition-fast)}.data-table tbody tr:hover td{background:var(--color-primary-ghost)}.toast-container{top:var(--space-4);right:var(--space-4);z-index:var(--z-toast);gap:var(--space-3);flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:400px;animation:.3s slideInRight;display:flex}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-danger)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-info{border-left:3px solid var(--color-info)}.toast-message{font-size:var(--font-size-sm);color:var(--text-primary);flex:1}.toast-close{color:var(--text-tertiary);cursor:pointer;font-size:var(--font-size-lg);background:0 0;border:none;padding:0;line-height:1}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;color:var(--text-tertiary);justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.empty-state-icon{opacity:.4;font-size:3rem}.skeleton{background:linear-gradient(90deg, var(--bg-card) 25%, var(--bg-card-hover) 50%, var(--bg-card) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-title{width:60%;height:20px;margin-bottom:var(--space-3)}.skeleton-card{height:120px}.page-container:has(#page-dashboard.active){padding-top:0;padding-bottom:0;overflow:hidden}#page-dashboard{height:calc(100vh - var(--header-height));box-sizing:border-box;grid-template-rows:auto 1.3fr 1fr;gap:clamp(3px,.35vh,6px);padding:clamp(3px,.3vh,6px) 0 0;display:grid;overflow:hidden}#page-dashboard.active{display:grid!important}.kpi-grid{grid-template-columns:repeat(7,1fr);gap:clamp(3px,.3vw,8px);display:grid}.kpi-card{background:var(--bg-card);border:1px solid var(--border-color);transition:all var(--transition-normal);border-radius:clamp(6px,.5vw,12px);align-items:center;gap:clamp(5px,.4vw,10px);padding:clamp(6px,.7vh,14px) clamp(8px,.6vw,16px);display:flex;position:relative;overflow:hidden}.kpi-card:before{content:"";border-radius:12px 12px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.kpi-total:before{background:var(--color-primary)}.kpi-overdue:before{background:#c0392b}.kpi-rejected:before{background:#e74c3c}.kpi-waiting:before{background:var(--color-accent)}.kpi-ifc:before{background:var(--color-primary)}.kpi-eng:before{background:var(--color-secondary)}.kpi-pro:before{background:#2d5a8e}.kpi-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-color-hover);transform:translateY(-2px)}.kpi-overdue{border-color:#c0392b33}.kpi-overdue .kpi-value{color:#c0392b}.kpi-rejected .kpi-value{color:#e74c3c}.kpi-waiting .kpi-value{color:var(--color-accent)}.kpi-icon{background:var(--bg-tertiary);border-radius:clamp(5px,.3vw,8px);flex-shrink:0;justify-content:center;align-items:center;width:clamp(26px,2.2vw,38px);height:clamp(26px,2.2vw,38px);font-size:clamp(.8rem,1vw,1.2rem);display:flex}.kpi-content{flex-direction:column;flex:1;min-width:0;display:flex}.kpi-value{font-size:clamp(1rem,1.5vw,2rem);font-weight:var(--font-weight-extrabold);color:var(--text-primary);line-height:1.1}.kpi-label{color:var(--text-tertiary);font-size:clamp(7px,.45vw,9px);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.charts-grid-2x2{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:clamp(3px,.3vw,8px);min-height:0;display:grid;overflow:hidden}.chart-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:clamp(6px,.5vw,12px);flex-direction:column;min-height:0;padding:clamp(4px,.4vh,8px) clamp(8px,.5vw,14px);display:flex;overflow:hidden}.chart-title{font-size:clamp(10px,.7vw,13px);font-weight:var(--font-weight-extrabold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;text-align:center;border-bottom:2px solid var(--color-accent);flex-shrink:0;margin-bottom:clamp(2px,.2vh,4px);padding-bottom:clamp(2px,.2vh,4px);line-height:1.5}.chart-legend-inline{color:var(--text-secondary);flex-shrink:0;align-items:center;gap:4px;margin-bottom:clamp(1px,.15vh,3px);font-size:clamp(8px,.45vw,10px);line-height:1;display:flex}.legend-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.chart-container{flex:1;min-height:0;position:relative}.chart-container canvas{width:100%!important;height:100%!important}.comparison-section{grid-template-columns:1fr 1fr;align-self:stretch;gap:clamp(3px,.3vw,8px);min-height:0;display:grid;overflow:hidden}.comparison-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:clamp(6px,.5vw,12px);flex-direction:column;min-height:0;padding:clamp(4px,.4vh,8px) clamp(8px,.5vw,14px);display:flex;overflow:hidden}.comparison-card .chart-title{margin-bottom:clamp(2px,.2vh,4px)}.comparison-table-wrap{flex:1;min-height:0;overflow:auto}.comparison-table{border-collapse:collapse;width:100%;font-size:clamp(11px,.7vw,13px)}.comparison-table th{background:var(--bg-tertiary);font-weight:var(--font-weight-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;text-align:left;border-bottom:2px solid var(--border-color);white-space:nowrap;z-index:1;padding:clamp(5px,.45vh,9px) clamp(8px,.5vw,12px);position:sticky;top:0}.comparison-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);font-weight:var(--font-weight-medium);white-space:nowrap;padding:clamp(5px,.45vh,9px) clamp(8px,.5vw,12px);line-height:1.5}.comparison-table tbody tr:hover td{background:var(--color-primary-ghost)}.comparison-table tbody tr:last-child td{border-bottom:none}.comparison-table td.delta-up{color:#0d9e4f;font-weight:var(--font-weight-bold)}.comparison-table td.delta-down{color:#e02020;font-weight:var(--font-weight-bold)}.comparison-table td.delta-neutral{color:var(--text-tertiary)}.delta-icon{margin-right:2px;font-size:9px}@media (width<=1200px){#page-dashboard,#page-dashboard.active{grid-template-rows:auto auto auto;height:auto!important;overflow:auto!important}.kpi-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=1024px){.charts-grid-2x2{grid-template-rows:auto;grid-template-columns:1fr}.chart-card{min-height:200px}.comparison-section{grid-template-columns:1fr}}@media (width<=768px){#page-dashboard,#page-dashboard.active{grid-template-rows:auto auto auto;gap:8px;padding:6px 0;height:auto!important;overflow:hidden auto!important}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:6px}.kpi-card{border-radius:8px;gap:8px;padding:10px}.kpi-icon{border-radius:6px;width:32px;height:32px;font-size:1rem}.kpi-value{font-size:1.2rem}.kpi-label{font-size:9px}.charts-grid-2x2{grid-template-rows:auto;grid-template-columns:1fr;gap:8px}.chart-card{border-radius:8px;min-height:180px;padding:8px 10px}.chart-title{margin-bottom:4px;padding-bottom:4px;font-size:11px}.chart-legend-inline{font-size:9px}.comparison-section{grid-template-columns:1fr;gap:8px}.comparison-card{border-radius:8px;padding:8px 10px}.comparison-table{font-size:12px}.comparison-table th,.comparison-table td{padding:6px 8px}.comparison-table-wrap{-webkit-overflow-scrolling:touch;max-height:250px}}@media (width<=400px){.kpi-grid{grid-template-columns:1fr 1fr;gap:4px}.kpi-card{gap:6px;padding:8px}.kpi-icon{width:28px;height:28px;font-size:.85rem}.kpi-value{font-size:1rem}.kpi-label{font-size:8px}}.input-tabs{gap:var(--space-1);background:var(--bg-tertiary);padding:var(--space-1);border-radius:var(--radius-lg);margin-bottom:var(--space-6);width:fit-content;display:flex}.input-tab{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none}.input-tab.active{background:var(--bg-card);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:var(--font-weight-semibold)}.input-tab:hover:not(.active){color:var(--text-primary)}.doc-form-container{max-width:860px}.doc-form{gap:var(--space-6);flex-direction:column;display:flex}.form-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-6)}.form-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-color);align-items:center;gap:var(--space-2);display:flex}.form-section-title .section-icon{font-size:var(--font-size-md)}.form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-grid-full{grid-column:1/-1}.form-field{gap:var(--space-2);flex-direction:column;display:flex}.form-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.form-field label .required{color:var(--color-danger);margin-left:2px}.form-field input,.form-field select,.form-field textarea{padding:var(--space-3) var(--space-4);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-base);font-family:var(--font-family);transition:all var(--transition-fast);width:100%}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.form-field input.error,.form-field select.error{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef444414}.form-field .field-error{font-size:var(--font-size-xs);color:var(--color-danger);display:none}.form-field .field-error.visible{display:block}.form-field .field-hint{font-size:var(--font-size-xs);color:var(--text-tertiary)}.form-field textarea{resize:vertical;min-height:80px}.form-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%234a5568' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.radio-group{gap:var(--space-3);flex-direction:column;display:flex}.radio-option{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.radio-option:hover,.radio-option.selected{border-color:var(--color-primary);background:var(--color-primary-ghost)}.radio-option input[type=radio]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.radio-option .radio-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.radio-option .radio-desc{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-left:auto}.issue-badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;display:inline-flex}.issue-badge.ifa{color:#0072bc;background:#0072bc1a}.issue-badge.ifr{color:#7c3aed;background:#7c3aed1a}.issue-badge.ifi{color:#06b6d4;background:#06b6d41a}.issue-badge.ifc{color:#10b981;background:#10b9811a}.dropzone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--bg-input)}.dropzone:hover,.dropzone.drag-over{border-color:var(--color-primary);background:var(--color-primary-ghost)}.dropzone.drag-over{transform:scale(1.01)}.dropzone-icon{margin-bottom:var(--space-3);opacity:.6;font-size:2.5rem}.dropzone-text{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-1)}.dropzone-hint{font-size:var(--font-size-xs);color:var(--text-tertiary)}.file-preview-list{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.file-preview-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-xs);animation:.2s fadeIn;display:flex}.file-preview-item .file-icon{font-size:var(--font-size-md)}.file-preview-item .file-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;color:var(--text-primary);overflow:hidden}.file-preview-item .file-size{color:var(--text-tertiary)}.file-preview-item .file-remove{cursor:pointer;color:var(--text-tertiary);font-size:var(--font-size-md);transition:color var(--transition-fast);background:0 0;border:none;padding:0;line-height:1}.file-preview-item .file-remove:hover{color:var(--color-danger)}.batch-preview{margin-top:var(--space-4)}.batch-stats{gap:var(--space-4);margin-bottom:var(--space-4);font-size:var(--font-size-sm);display:flex}.batch-stat{align-items:center;gap:var(--space-1);display:flex}.batch-stat.valid{color:var(--color-success)}.batch-stat.invalid{color:var(--color-danger)}.batch-stat.total{color:var(--text-secondary)}.batch-table-wrap{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow-x:auto}.batch-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.batch-table th{padding:var(--space-3) var(--space-3);background:var(--bg-tertiary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.batch-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle}.batch-table tr:last-child td{border-bottom:none}.batch-table tr.row-invalid{background:#ef44440a}.batch-table tr.row-invalid td{color:var(--color-danger)}.batch-table .cell-status{text-align:center}.batch-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.batch-table .editable-cell{cursor:text;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.batch-table .editable-cell:hover{background:var(--color-primary-ghost)}.batch-table .editable-cell:focus{outline:2px solid var(--color-primary);background:var(--bg-input)}.form-actions{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border-color);display:flex}.batch-settings{gap:var(--space-4);padding:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=768px){.form-grid{grid-template-columns:1fr}.batch-settings{grid-template-columns:1fr 1fr}.input-tabs{width:100%}.input-tab{text-align:center;flex:1}}@media (width<=480px){.batch-settings{grid-template-columns:1fr}}.request-layout{gap:var(--space-6);grid-template-columns:1fr;max-width:1200px;display:grid}.tracking-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.tracking-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);align-items:center;gap:var(--space-2);display:flex}.tracking-filters{gap:var(--space-2);display:flex}.filter-chip{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border-color);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);background:0 0}.filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.tracking-count{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:var(--space-3)}.request-table-wrap{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow-x:auto}.request-table{border-collapse:collapse;width:100%}.request-table th{padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.request-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color);font-size:var(--font-size-sm);color:var(--text-primary);vertical-align:middle}.request-table tbody tr:last-child td{border-bottom:none}.request-table tbody tr:hover td{background:var(--color-primary-ghost)}.status-pill{align-items:center;gap:var(--space-1);padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-flex}.status-pill.pending{color:#f59e0b;background:#f59e0b1a}.status-pill.approved{color:#10b981;background:#10b9811a}.status-pill.rejected{color:#ef4444;background:#ef44441a}.doc-no-assigned{font-family:Consolas,Monaco,monospace;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.admin-section{border:2px solid var(--color-accent);border-radius:var(--radius-xl);overflow:hidden}.admin-section .form-section-title{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-color);background:#f582200f;border-radius:0;margin:0}.admin-badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);margin-left:var(--space-2);display:inline-flex}.admin-request-card{padding:var(--space-5);border-bottom:1px solid var(--border-color);transition:background var(--transition-fast)}.admin-request-card:last-child{border-bottom:none}.admin-request-card:hover{background:var(--color-primary-ghost)}.admin-request-meta{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--font-size-sm);color:var(--text-secondary);display:flex}.admin-request-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.admin-request-info{gap:var(--space-4);margin-bottom:var(--space-3);font-size:var(--font-size-sm);color:var(--text-secondary);display:flex}.admin-request-info span{align-items:center;gap:var(--space-1);display:flex}.admin-request-purpose{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:var(--space-4);font-style:italic}.admin-request-actions{align-items:flex-end;gap:var(--space-3);display:flex}.admin-request-actions .form-field{flex:1}.admin-request-actions .form-field input{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.admin-empty{padding:var(--space-8);text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm)}.admin-empty .admin-empty-icon{margin-bottom:var(--space-2);opacity:.5;font-size:2rem}.pagination{justify-content:center;gap:var(--space-1);margin-top:var(--space-4);display:flex}.pagination-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0}.pagination-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.pagination-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media (width<=768px){.admin-request-info{gap:var(--space-1);flex-direction:column}.admin-request-actions{flex-direction:column}.tracking-header{flex-direction:column;align-items:flex-start}.tracking-filters{flex-wrap:wrap}}.main-content:has(#page-search.active) .top-header{display:none}.page-container:has(#page-search.active){padding:0;overflow:hidden}#page-search{box-sizing:border-box;flex-direction:column;gap:0;height:100vh;display:flex;overflow:hidden}#page-search.active{display:flex!important}.search-header{background:var(--color-primary);color:#fff;align-items:center;gap:clamp(8px,1vw,16px);padding:clamp(6px,.5vh,10px) clamp(8px,.5vw,16px);display:flex}.search-header .search-back-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:background .2s;display:flex}.search-header .search-back-btn:hover{background:#ffffff40}.search-header-logo{object-fit:contain;width:auto;height:28px}.search-header-title{font-size:clamp(14px,1.2vw,20px);font-weight:var(--font-weight-extrabold);letter-spacing:.05em;text-transform:uppercase}.search-header-author{opacity:.7;margin-left:auto;font-size:clamp(9px,.6vw,11px);font-style:italic}.search-filters{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-direction:column;gap:clamp(3px,.3vh,6px);padding:clamp(4px,.4vh,8px) clamp(8px,.5vw,16px);display:flex}.filter-row{align-items:flex-end;gap:clamp(6px,.4vw,12px);display:flex}.filter-group{flex-direction:column;flex:1;gap:1px;min-width:100px;max-width:200px;display:flex}.filter-group.filter-search{max-width:240px}.filter-group label{font-size:clamp(9px,.5vw,10px);font-weight:var(--font-weight-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.filter-group select,.filter-group input{font-size:clamp(10px,.6vw,12px);font-family:var(--font-family);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast);box-sizing:border-box;height:28px;padding:clamp(3px,.3vh,5px) clamp(6px,.3vw,8px)}.filter-group select:focus,.filter-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ghost);outline:none}.filter-group input::placeholder{color:var(--text-tertiary)}.filter-actions{flex-shrink:0;align-items:flex-end;gap:6px;margin-left:auto;display:flex}.filter-btn{height:28px;font-size:clamp(10px,.55vw,12px);font-weight:var(--font-weight-bold);font-family:var(--font-family);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;box-sizing:border-box;border:none;align-items:center;gap:4px;padding:0 clamp(8px,.5vw,14px);display:inline-flex}.filter-btn-search{background:var(--color-primary);color:#fff}.filter-btn-search:hover{background:var(--color-primary-dark)}.filter-btn-reset{background:var(--bg-tertiary);color:var(--text-secondary)}.filter-btn-reset:hover{background:var(--border-color)}.filter-btn-latest{background:var(--color-accent);color:#fff}.filter-btn-latest:hover{background:var(--color-accent-light)}.search-kpi-row{background:var(--bg-secondary);border-bottom:2px solid var(--color-primary);grid-template-columns:repeat(6,1fr);gap:clamp(4px,.3vw,8px);padding:clamp(4px,.3vh,8px) clamp(8px,.5vw,16px);display:grid}.search-kpi{background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-xs);flex-direction:column;align-items:center;padding:clamp(3px,.25vh,6px) clamp(4px,.3vw,8px);display:flex}.search-kpi-label{font-size:clamp(8px,.45vw,10px);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.search-kpi-value{font-size:clamp(18px,1.4vw,28px);font-weight:var(--font-weight-extrabold);color:var(--color-primary);line-height:1.2}.search-kpi-value.kpi-danger{color:#e02020}.search-kpi-value.kpi-warning{color:var(--color-accent)}.search-table-wrapper{background:var(--bg-primary);flex:1;min-height:0;overflow:auto}.search-table-header{background:var(--color-primary);color:#fff;font-size:clamp(10px,.65vw,13px);font-weight:var(--font-weight-extrabold);letter-spacing:.06em;text-transform:uppercase;z-index:2;justify-content:center;align-items:center;padding:clamp(4px,.3vh,7px) clamp(8px,.5vw,16px);display:flex;position:sticky;top:0}.search-table{border-collapse:collapse;width:100%;font-size:clamp(10px,.6vw,12px)}.search-table thead{z-index:1;position:sticky;top:32px}.search-table th{background:var(--color-primary,#1b2a4a);color:#fff;text-transform:uppercase;letter-spacing:.04em;text-align:left;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:2px solid #ffffff26;padding:clamp(6px,.5vh,10px) clamp(6px,.3vw,10px);font-size:clamp(10px,.65vw,13px);font-weight:800;transition:background .2s}.search-table th:hover{background:#253b66}.search-table th .sort-icon{opacity:.5;color:#fff9;margin-left:4px;font-size:10px}.search-table th.sorted .sort-icon{opacity:1;color:var(--color-accent,#e8751a)}.search-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;padding:clamp(3px,.3vh,6px) clamp(6px,.3vw,10px);overflow:hidden}.search-table td.col-docname{white-space:normal;word-break:break-word;min-width:300px;max-width:500px}.search-table tbody tr{transition:background .15s}.search-table tbody tr:hover td{background:var(--color-primary-ghost)}.search-table tbody tr:nth-child(2n) td{background:#00000004}.search-table tbody tr:nth-child(2n):hover td{background:var(--color-primary-ghost)}.search-table tbody tr.latest-rev-row td{background:#d1fae5}.search-table tbody tr.latest-rev-row:hover td{background:#a7f3d0}.status-pill{border-radius:var(--radius-sm);font-size:clamp(9px,.5vw,11px);font-weight:var(--font-weight-semibold);white-space:nowrap;padding:1px 6px;display:inline-block}.status-pill.status-waiting-first{color:#92400e;background:#fef3c7}.status-pill.status-waiting-resubmit,.status-pill.status-overdue-first{color:#991b1b;background:#fee2e2}.status-pill.status-overdue-resubmit{color:#9d174d;background:#fce7f3}.status-pill.status-ongoing-resubmit{color:#1e40af;background:#dbeafe}.status-pill.status-completed{color:#065f46;background:#d1fae5}.code-badge{font-size:clamp(9px,.5vw,10px);font-weight:var(--font-weight-bold);background:var(--color-primary-ghost);color:var(--color-primary);border-radius:3px;padding:1px 5px;display:inline-block}.btn-download{font-size:clamp(9px,.5vw,10px);font-weight:var(--font-weight-semibold);font-family:var(--font-family);border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary-ghost);color:var(--color-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:3px;padding:2px 8px;transition:all .2s;display:inline-flex}.btn-download:hover{background:var(--color-primary);color:#fff}.rev-badge{text-align:center;min-width:24px;font-weight:var(--font-weight-bold);border-radius:3px;padding:1px 4px;font-size:clamp(9px,.5vw,10px);display:inline-block}.rev-badge.is-latest{color:#065f46;background:#d1fae5}.search-result-count{color:var(--text-tertiary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:clamp(2px,.2vh,4px) clamp(8px,.5vw,16px);font-size:clamp(9px,.5vw,11px);display:flex}.search-result-count strong{color:var(--color-primary)}.search-empty{color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px;display:flex}.search-empty-icon{opacity:.3;font-size:48px}@media (width<=1200px){#page-search{height:auto;overflow:auto}.filter-row{flex-wrap:wrap}.filter-group{flex:140px;min-width:120px;max-width:none}.search-kpi-row{grid-template-columns:repeat(3,1fr)}}.review-page-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.review-page-header .back-btn{cursor:pointer;color:var(--text-primary);border-radius:var(--radius-md);background:0 0;border:none;padding:4px 8px;font-size:1.4rem;transition:background .2s}.review-page-header .back-btn:hover{background:var(--color-primary-ghost)}.review-page-header h2{color:var(--text-primary);text-transform:uppercase;letter-spacing:.02em;font-size:clamp(18px,1.6vw,26px);font-weight:800}.review-page-header .author-tag{color:var(--text-tertiary);margin-left:auto;font-size:12px;font-style:italic}.review-action-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.review-action-bar .btn-create{background:var(--color-primary,#1b2a4a);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.review-action-bar .btn-create:hover{background:#253b66;transform:translateY(-1px);box-shadow:0 4px 12px #1b2a4a4d}.review-action-bar .filter-input{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);min-width:180px;font-size:13px;font-family:var(--font-family);padding:6px 12px}.review-action-bar .filter-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.review-action-bar .filter-select{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);min-width:120px;font-size:13px;font-family:var(--font-family);cursor:pointer;padding:6px 12px}.review-action-bar .filter-select:focus{border-color:var(--color-primary);outline:none}.review-kpi-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px;display:grid}.review-kpi-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);text-align:center;padding:12px 14px;transition:transform .2s,box-shadow .2s}.review-kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.review-kpi-card .kpi-value{color:var(--text-primary);font-size:clamp(20px,1.6vw,28px);font-weight:800;line-height:1.1}.review-kpi-card .kpi-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-top:4px;font-size:10px;font-weight:600}.review-kpi-card.kpi-pending .kpi-value{color:var(--color-warning,#f59e0b)}.review-kpi-card.kpi-reviewed .kpi-value{color:var(--color-info,#2563eb)}.review-kpi-card.kpi-closed .kpi-value{color:var(--color-success,#22c55e)}.review-kpi-card.kpi-overdue .kpi-value{color:var(--color-danger,#ef4444)}.review-table-wrap{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary);overflow-x:auto}.review-table{border-collapse:collapse;width:100%;font-size:clamp(11px,.7vw,13px)}.review-table thead{z-index:5;position:sticky;top:0}.review-table th{background:var(--color-primary,#1b2a4a);color:#fff;text-transform:uppercase;letter-spacing:.04em;text-align:left;white-space:nowrap;border-bottom:2px solid #ffffff26;padding:10px;font-size:clamp(10px,.65vw,12px);font-weight:800}.review-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle;padding:8px 10px}.review-table tbody tr:hover{background:var(--color-primary-ghost)}.review-table tbody tr:nth-child(2n){background:var(--bg-tertiary)}.review-table tbody tr:nth-child(2n):hover{background:var(--color-primary-ghost)}.code-badge{border-radius:var(--radius-full,20px);letter-spacing:.03em;justify-content:center;align-items:center;min-width:32px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.code-badge.code-a1{color:#16a34a;background:#22c55e26;border:1px solid #22c55e4d}.code-badge.code-a2{color:#b45309;background:#eab30826;border:1px solid #eab3084d}.code-badge.code-a3{color:#c2410c;background:#f9731626;border:1px solid #f973164d}.code-badge.code-a4{color:#b91c1c;background:#dc262626;border:1px solid #dc26264d}.code-badge.code-r1{color:#16a34a;background:#22c55e26;border:1px solid #22c55e4d}.code-badge.code-r2{color:#b45309;background:#eab30826;border:1px solid #eab3084d}.code-badge.code-none{color:#64748b;background:#94a3b826;border:1px solid #94a3b84d}.status-pill-review{border-radius:var(--radius-full,20px);align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.status-pill-review.st-pending{color:#b45309;background:#f59e0b1f}.status-pill-review.st-reviewed{color:#1d4ed8;background:#2563eb1f}.status-pill-review.st-closed{color:#16a34a;background:#22c55e1f}.status-pill-review.st-overdue{color:#dc2626;background:#ef44441f}.status-pill-review.st-open{color:#c2410c;background:#f973161f}.review-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.review-modal-overlay.hidden{display:none}.review-modal{background:var(--bg-secondary);border-radius:var(--radius-xl,16px);width:90%;max-width:640px;max-height:85vh;animation:.3s slideUp;overflow-y:auto;box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.review-modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.review-modal-header h3{color:var(--text-primary);font-size:16px;font-weight:700}.review-modal-header .modal-close{cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-md);background:0 0;border:none;padding:4px;font-size:20px;transition:all .2s}.review-modal-header .modal-close:hover{background:var(--color-danger-light,#ef44441a);color:var(--color-danger)}.review-modal-body{padding:20px 24px}.review-modal-body .form-row{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.review-modal-body .form-row.full{grid-template-columns:1fr}.review-modal-body .form-group{flex-direction:column;gap:5px;display:flex}.review-modal-body label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.review-modal-body input,.review-modal-body select,.review-modal-body textarea{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-size:13px;font-family:var(--font-family);padding:8px 12px;transition:border-color .2s}.review-modal-body input:focus,.review-modal-body select:focus,.review-modal-body textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.review-modal-body textarea{resize:vertical;min-height:80px}.review-modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.review-modal-footer .btn-cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;padding:8px 18px;font-size:13px;transition:all .2s}.review-modal-footer .btn-cancel:hover{background:var(--border-color)}.review-modal-footer .btn-submit{background:var(--color-primary,#1b2a4a);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;padding:8px 20px;font-size:13px;font-weight:600;transition:all .2s}.review-modal-footer .btn-submit:hover{background:#253b66}.btn-close-cmt{background:var(--color-success,#22c55e);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;padding:4px 10px;font-size:11px;font-weight:600;transition:all .2s}.btn-close-cmt:hover{background:#16a34a;transform:translateY(-1px)}.btn-close-cmt.closed{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:default;pointer-events:none}.review-empty{color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 20px;display:flex}.review-empty-icon{opacity:.5;font-size:2.5rem}.doc-select-list{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);max-height:200px;padding:8px;overflow-y:auto}.doc-select-item{border-radius:var(--radius-sm,4px);cursor:pointer;align-items:center;gap:8px;padding:5px 8px;font-size:12px;transition:background .15s;display:flex}.doc-select-item:hover{background:var(--color-primary-ghost)}.doc-select-item input[type=checkbox]{accent-color:var(--color-primary)}.doc-select-item .doc-info{flex-direction:column;gap:1px;display:flex}.doc-select-item .doc-no{color:var(--text-primary);font-weight:600}.doc-select-item .doc-name{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;max-width:400px;font-size:11px;overflow:hidden}.review-result-bar{background:var(--color-primary,#1b2a4a);color:#ffffffe6;border-radius:var(--radius-md);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 14px;font-size:12px;font-weight:600;display:flex}.btn-files{color:#2563eb;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;background:#2563eb1a;border:1px solid #2563eb40;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;transition:all .2s;display:inline-flex}.btn-files:hover{background:#2563eb33;transform:translateY(-1px)}.btn-files .file-count{color:#fff;background:#2563eb;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;display:inline-flex}.file-panel-header{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;margin-bottom:12px;padding:10px 0;display:flex}.file-panel-header .folder-name{color:var(--text-primary);word-break:break-all;font-size:13px;font-weight:700}.file-panel-header .folder-icon{font-size:1.4rem}.file-list{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.file-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:10px;padding:8px 12px;transition:all .15s;display:flex}.file-item:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #1b2a4a14}.file-item .file-icon{flex-shrink:0;font-size:1.3rem}.file-item .file-info{flex:1;min-width:0}.file-item .file-name{color:var(--text-primary);word-break:break-all;font-size:12px;font-weight:600}.file-item .file-meta{color:var(--text-tertiary);margin-top:2px;font-size:10px}.file-item .file-type-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.file-type-tag.tag-response{color:#1d4ed8;background:#2563eb1f}.file-type-tag.tag-comment{color:#c2410c;background:#f973161f}.file-type-tag.tag-drawing{color:#7c3aed;background:#7c3aed1f}.btn-file-download{background:var(--color-primary,#1b2a4a);color:#fff;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;padding:4px 10px;font-size:10px;font-weight:600;transition:all .2s}.btn-file-download:hover{background:#253b66}.upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--bg-tertiary);padding:20px;transition:all .2s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--color-primary);background:var(--color-primary-ghost)}.upload-zone .upload-icon{opacity:.6;font-size:1.8rem}.upload-zone .upload-text{color:var(--text-secondary);margin-top:6px;font-size:12px}.upload-zone .upload-hint{color:var(--text-tertiary);margin-top:4px;font-size:10px}.review-modal.file-modal{max-width:720px}@media (width<=768px){.review-action-bar{flex-direction:column;align-items:stretch}.review-modal-body .form-row{grid-template-columns:1fr}.review-kpi-row{grid-template-columns:repeat(2,1fr)}}.archive-container{background:var(--bg-card,#fff);border-radius:var(--radius-lg,16px);border:1px solid var(--border,#e2e8f0);gap:0;height:calc(100vh - 180px);min-height:500px;display:flex;overflow:hidden}.archive-tree-panel{border-right:1px solid var(--border,#e2e8f0);background:#f8fafc;flex-direction:column;width:280px;min-width:240px;max-width:340px;display:flex}.archive-tree-header{border-bottom:1px solid var(--border,#e2e8f0);background:var(--primary,#1b2a4a);color:#fff;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.archive-tree-header h3{letter-spacing:.5px;text-transform:uppercase;margin:0;font-size:13px;font-weight:700}.archive-tree-actions{gap:6px;display:flex}.archive-tree-actions button{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:background .2s;display:flex}.archive-tree-actions button:hover{background:#ffffff4d}.archive-tree-search{border-bottom:1px solid var(--border,#e2e8f0);padding:10px 12px}.archive-tree-search input{border:1px solid var(--border,#e2e8f0);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%2394A3B8' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") 8px no-repeat;border-radius:6px;outline:none;width:100%;padding:7px 10px 7px 30px;font-size:12px}.archive-tree-search input:focus{border-color:var(--primary,#1b2a4a)}.archive-tree-body{flex:1;padding:8px 0;overflow-y:auto}.tree-item{padding:6px 12px 6px var(--indent,12px);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-primary,#1e293b);border-left:3px solid #0000;align-items:center;font-size:13px;transition:background .15s;display:flex;position:relative}.tree-item:hover{background:#eef2ff}.tree-item.active{border-left-color:var(--primary,#1b2a4a);background:#dbeafe;font-weight:600}.tree-item .tree-toggle{width:18px;height:18px;color:var(--text-tertiary,#94a3b8);flex-shrink:0;justify-content:center;align-items:center;font-size:10px;transition:transform .2s;display:flex}.tree-item.expanded>.tree-toggle{transform:rotate(90deg)}.tree-item .tree-icon{flex-shrink:0;margin:0 6px;font-size:15px}.tree-item .tree-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.tree-item .tree-count{background:var(--primary,#1b2a4a);color:#fff;border-radius:10px;flex-shrink:0;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:600}.tree-children{display:none}.tree-children.expanded{display:block}.archive-file-panel{flex-direction:column;flex:1;min-width:0;display:flex}.archive-file-header{border-bottom:1px solid var(--border,#e2e8f0);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px;display:flex}.archive-breadcrumb{color:var(--text-secondary,#64748b);align-items:center;gap:6px;font-size:13px;display:flex}.archive-breadcrumb span{cursor:pointer}.archive-breadcrumb span:hover{color:var(--primary,#1b2a4a);text-decoration:underline}.archive-breadcrumb .bc-sep{color:var(--text-tertiary,#94a3b8);cursor:default}.archive-breadcrumb .bc-sep:hover{color:var(--text-tertiary,#94a3b8);text-decoration:none}.archive-breadcrumb .bc-current{color:var(--text-primary,#1e293b);cursor:default;font-weight:600}.archive-breadcrumb .bc-current:hover{text-decoration:none}.archive-file-toolbar{gap:8px;display:flex}.archive-file-toolbar button{border:1px solid var(--border,#e2e8f0);cursor:pointer;color:var(--text-primary,#1e293b);background:#fff;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;transition:all .2s;display:flex}.archive-file-toolbar button:hover{border-color:var(--primary,#1b2a4a);background:#f1f5f9}.archive-file-toolbar button.btn-primary-sm{background:var(--primary,#1b2a4a);color:#fff;border-color:var(--primary,#1b2a4a)}.archive-file-toolbar button.btn-primary-sm:hover{background:var(--primary-light,#2c4066)}.archive-file-toolbar button.btn-danger-sm{color:var(--danger,#ef4444);border-color:#fca5a5}.archive-file-toolbar button.btn-danger-sm:hover{background:#fef2f2}.archive-file-body{flex:1;padding:16px 20px;overflow-y:auto}.archive-file-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:16px;display:grid}.archive-file-card{border:1px solid var(--border,#e2e8f0);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;padding:14px 10px 10px;transition:all .2s;display:flex;position:relative}.archive-file-card:hover{border-color:var(--primary,#1b2a4a);transform:translateY(-2px);box-shadow:0 2px 8px #1b2a4a1a}.archive-file-card.selected{border-color:var(--primary,#1b2a4a);background:#eff6ff}.archive-file-card .card-icon{margin-bottom:8px;font-size:36px}.archive-file-card .card-name{text-align:center;word-break:break-all;color:var(--text-primary,#1e293b);max-height:30px;font-size:11px;line-height:1.3;overflow:hidden}.archive-file-card .card-meta{color:var(--text-tertiary,#94a3b8);margin-top:4px;font-size:10px}.archive-file-card .card-check{border:2px solid var(--border,#e2e8f0);background:#fff;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex;position:absolute;top:6px;right:6px}.archive-file-card.selected .card-check{background:var(--primary,#1b2a4a);border-color:var(--primary,#1b2a4a);color:#fff}.archive-file-list{width:100%}.archive-file-list table{border-collapse:collapse;width:100%}.archive-file-list thead th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary,#64748b);border-bottom:2px solid var(--border,#e2e8f0);padding:8px 12px;font-size:11px;font-weight:700}.archive-file-list tbody tr{cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .15s}.archive-file-list tbody tr:hover{background:#f8fafc}.archive-file-list tbody tr.selected{background:#eff6ff}.archive-file-list tbody td{color:var(--text-primary,#1e293b);padding:8px 12px;font-size:13px}.archive-file-list .file-name-cell{align-items:center;gap:8px;display:flex}.archive-file-list .file-name-cell .file-icon{flex-shrink:0;font-size:18px}.archive-file-list .file-type-badge{text-transform:uppercase;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.badge-pdf{color:#991b1b;background:#fee2e2}.badge-dwg{color:#1e40af;background:#dbeafe}.badge-xlsx{color:#065f46;background:#d1fae5}.badge-docx{color:#3730a3;background:#e0e7ff}.badge-folder{color:#92400e;background:#fef3c7}.archive-upload-zone{border:2px dashed var(--border,#e2e8f0);text-align:center;cursor:pointer;border-radius:12px;margin-top:16px;padding:24px;transition:all .2s}.archive-upload-zone:hover,.archive-upload-zone.dragover{border-color:var(--primary,#1b2a4a);background:#1b2a4a08}.archive-upload-zone .upload-icon{margin-bottom:6px;font-size:28px}.archive-upload-zone .upload-text{color:var(--text-secondary,#64748b);font-size:13px}.archive-upload-zone .upload-hint{color:var(--text-tertiary,#94a3b8);margin-top:2px;font-size:11px}.archive-empty{color:var(--text-tertiary,#94a3b8);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.archive-empty .empty-icon{margin-bottom:12px;font-size:48px}.archive-empty p{font-size:14px}.archive-kpi-row{flex-wrap:wrap;gap:12px;padding:0 0 16px;display:flex}.archive-kpi-card{background:var(--bg-card,#fff);border:1px solid var(--border,#e2e8f0);text-align:center;border-left:4px solid var(--primary,#1b2a4a);border-radius:10px;flex:1;min-width:120px;padding:12px 16px}.archive-kpi-card .kpi-value{color:var(--text-primary,#1e293b);font-size:22px;font-weight:800}.archive-kpi-card .kpi-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary,#64748b);margin-top:2px;font-size:10px;font-weight:600}.archive-kpi-card.kpi-pdf{border-left-color:#ef4444}.archive-kpi-card.kpi-dwg{border-left-color:#3b82f6}.archive-kpi-card.kpi-xlsx{border-left-color:#10b981}.archive-kpi-card.kpi-size{border-left-color:#f59e0b}.archive-context-menu{border:1px solid var(--border,#e2e8f0);z-index:1000;background:#fff;border-radius:8px;min-width:180px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0000001f}.archive-context-menu .ctx-item{cursor:pointer;align-items:center;gap:8px;padding:8px 14px;font-size:13px;transition:background .15s;display:flex}.archive-context-menu .ctx-item:hover{background:#f1f5f9}.archive-context-menu .ctx-item.danger{color:var(--danger,#ef4444)}.archive-context-menu .ctx-divider{background:var(--border,#e2e8f0);height:1px;margin:4px 0}.rename-input{border:1px solid var(--primary,#1b2a4a);border-radius:4px;outline:none;width:100%;padding:2px 6px;font-size:12px}.view-toggle{border:1px solid var(--border,#e2e8f0);border-radius:6px;display:flex;overflow:hidden}.view-toggle button{cursor:pointer;background:#fff;border:none;padding:5px 10px;font-size:14px;transition:all .2s}.view-toggle button.active{background:var(--primary,#1b2a4a);color:#fff}.archive-modal-overlay{z-index:900;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.archive-modal-overlay.hidden{display:none}.archive-modal{background:#fff;border-radius:14px;width:90%;max-width:480px;animation:.2s modalIn;box-shadow:0 20px 60px #0003}@keyframes modalIn{0%{opacity:0;transform:translateY(-10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.archive-modal-header{border-bottom:1px solid var(--border,#e2e8f0);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.archive-modal-header h3{margin:0;font-size:16px;font-weight:700}.archive-modal-body{padding:20px}.archive-modal-body label{color:var(--text-secondary,#64748b);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.archive-modal-body input,.archive-modal-body select{border:1px solid var(--border,#e2e8f0);border-radius:8px;outline:none;width:100%;margin-bottom:14px;padding:9px 12px;font-size:13px}.archive-modal-body input:focus,.archive-modal-body select:focus{border-color:var(--primary,#1b2a4a)}.archive-modal-footer{border-top:1px solid var(--border,#e2e8f0);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.alert-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px;display:grid}.alert-kpi{border-left:4px solid var(--primary);background:#fff;border-radius:10px;padding:16px 18px;transition:transform .15s;box-shadow:0 1px 4px #0000000f}.alert-kpi:hover{transform:translateY(-2px);box-shadow:0 3px 10px #0000001a}.alert-kpi-value{color:var(--text-primary);font-size:1.8rem;font-weight:800}.alert-kpi-label{color:var(--text-secondary);margin-top:2px;font-size:.75rem;font-weight:500}.alert-kpi.kpi-danger{border-color:#ef4444}.alert-kpi.kpi-danger .alert-kpi-value{color:#ef4444}.alert-kpi.kpi-warning{border-color:#f59e0b}.alert-kpi.kpi-warning .alert-kpi-value{color:#f59e0b}.alert-kpi.kpi-info{border-color:#3b82f6}.alert-kpi.kpi-info .alert-kpi-value{color:#3b82f6}.alert-kpi.kpi-success{border-color:#10b981}.alert-kpi.kpi-success .alert-kpi-value{color:#10b981}.alert-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.alert-toolbar select,.alert-toolbar input{border:1px solid var(--border);background:#fff;border-radius:6px;padding:7px 12px;font-size:.82rem}.alert-toolbar .btn-send-all{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;align-items:center;gap:6px;margin-left:auto;padding:8px 18px;font-size:.82rem;font-weight:600;transition:transform .15s,box-shadow .15s;display:flex}.alert-toolbar .btn-send-all:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.alert-table-wrap{background:#fff;border-radius:10px;overflow-x:auto;box-shadow:0 1px 4px #0000000f}.alert-table{border-collapse:collapse;width:100%;font-size:.82rem}.alert-table thead th{background:var(--primary);color:#fff;text-align:left;white-space:nowrap;letter-spacing:.3px;z-index:2;padding:10px 12px;font-size:.78rem;font-weight:600;position:sticky;top:0}.alert-table tbody td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:8px 12px}.alert-table tbody tr:hover{background:#f8fafc}.severity-badge{letter-spacing:.2px;border-radius:12px;align-items:center;gap:4px;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.severity-critical{color:#dc2626;background:#fee2e2}.severity-high{color:#d97706;background:#fef3c7}.severity-medium{color:#2563eb;background:#dbeafe}.severity-low{color:#059669;background:#d1fae5}.alert-status-pill{border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.pill-overdue{color:#b91c1c;background:#fee2e2}.pill-pending{color:#92400e;background:#fef3c7}.pill-waiting{color:#1d4ed8;background:#dbeafe}.pill-sent{color:#065f46;background:#d1fae5}.btn-alert-action{cursor:pointer;border:none;border-radius:6px;padding:4px 10px;font-size:.72rem;font-weight:600;transition:all .15s}.btn-send-email{color:#1d4ed8;background:#dbeafe}.btn-send-email:hover{background:#bfdbfe}.btn-dismiss{color:#64748b;background:#f1f5f9}.btn-dismiss:hover{background:#e2e8f0}.days-cell{font-variant-numeric:tabular-nums;font-weight:700}.days-critical{color:#dc2626}.days-high{color:#d97706}.days-medium{color:#2563eb}.alert-empty{text-align:center;color:var(--text-secondary);padding:60px 20px}.alert-empty-icon{margin-bottom:12px;font-size:3rem}@media (width<=768px){.alert-kpi-grid{grid-template-columns:repeat(2,1fr)}.page-container{box-sizing:border-box;width:100%;padding:6px 8px;overflow-x:hidden}.page{overflow-x:hidden}.form-grid{gap:10px;grid-template-columns:1fr!important}.form-grid-full{grid-column:1!important}.form-field input,.form-field select,.form-field textarea{font-size:16px}.form-actions{flex-direction:column;gap:8px}.form-actions .btn{justify-content:center;width:100%}.form-section{border-radius:8px;padding:12px}.form-section-title{font-size:14px}.request-table-wrap,.review-table-wrap,.search-table-wrap,.data-table-wrap{-webkit-overflow-scrolling:touch;margin:0 -8px;padding:0 8px;overflow-x:auto}.request-table,.review-table,.search-table,.data-table{min-width:600px;font-size:12px}.request-table th,.request-table td,.review-table th,.review-table td{white-space:nowrap;padding:8px 6px}.tracking-header{flex-direction:column;align-items:flex-start;gap:8px}.tracking-filters{flex-wrap:wrap;gap:4px;display:flex}.filter-chip{padding:4px 10px;font-size:11px}.admin-request-card{padding:10px}.admin-request-actions{flex-direction:column;gap:8px}.admin-request-info{flex-wrap:wrap;gap:6px}.archive-grid{gap:8px;grid-template-columns:repeat(2,1fr)!important}.btn{min-height:40px;padding:10px 16px}.btn-sm{min-height:34px;padding:6px 12px}.modal-content,.admin-request-card{max-width:100%;margin:0 8px}.desktop-only{display:none!important}}@media (width<=400px){.page-container{padding:4px 6px}.archive-grid{grid-template-columns:1fr!important}.form-section{padding:10px 8px}.status-pill{padding:2px 6px;font-size:10px}}.mdi-report-block{margin-bottom:20px}.mdi-report-title{text-align:center;color:#000;background:#d0d0d0;border:1px solid #999;padding:5px 10px;font-family:Calibri,Segoe UI,sans-serif;font-size:11pt;font-weight:700}.mdi-report-table-wrap{border:1px solid #999;border-top:none;overflow-x:auto}.mdi-status-table{border-collapse:collapse;width:100%;min-width:1050px;font-family:Calibri,Segoe UI,sans-serif;font-size:10pt}.mdi-status-table thead{z-index:2;position:sticky;top:0}.mdi-status-table th,.mdi-status-table td{border:1px solid #999}.mdi-status-table th{text-align:center;white-space:nowrap;color:#000;padding:3px 5px;font-size:8.5pt;font-weight:700}.header-top th{background:#fff}.hg-ifa{background:#d0dfe5!important}.hg-ifc{background:#fae2d5!important}.hg-reply{max-width:70px;white-space:normal!important;background:#fff!important;font-size:7pt!important}.header-sub th{font-size:7.5pt}.mdi-status-table td{text-align:center;font-variant-numeric:tabular-nums;color:#000;background:#fff;padding:2px 4px;position:relative}.c{text-align:center}.td-date{white-space:nowrap;text-align:left;padding-left:5px;font-weight:400}.td-total{font-weight:700}.td-bar{position:relative;overflow:hidden}.td-bar .bar{z-index:0;border-radius:1px;position:absolute;top:2px;bottom:2px;left:1px}.td-bar .bv{z-index:1;position:relative}.bg{opacity:.7;background:#63c384;border:1px solid #4da86d}.br{opacity:.7;background:#ff555a;border:1px solid #e04045}.ba{opacity:.7;background:#ffb628;border:1px solid #e09e20}.mdi-status-table tbody tr:hover td{background:#e2efda!important}@media print{.sidebar,.topbar,.page-header{display:none!important}.mdi-status-table{min-width:auto;font-size:8pt}.mdi-status-table th,.hg-ifa,.hg-ifc,.mdi-report-title,.td-bar .bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
