@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;700&display=swap";:root{--primary-color: #2bd6e8;--primary-strong: #17a8bd;--secondary-color: #7c5cff;--bg-color: #0a0d13;--bg-elevated: #11151d;--surface-color: rgba(24, 28, 37, .72);--surface-color-hover: rgba(32, 38, 50, .85);--surface-solid: #161a22;--text-primary: #f3f5f9;--text-secondary: #97a0b4;--danger-color: #ff4d62;--success-color: #2ee686;--warning-color: #f5b53d;--border-color: rgba(255, 255, 255, .07);--glass-border: 1px solid rgba(255, 255, 255, .08);--glow-primary: 0 0 0 1px rgba(43, 214, 232, .18);--glow-secondary: 0 0 0 1px rgba(124, 92, 255, .18);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25), 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .2);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .4), 0 4px 8px rgba(0, 0, 0, .25);--radius: 12px;--gradient-start: #0a0d13;--gradient-end: #080a10;--mesh-opacity-1: rgba(43, 214, 232, .045);--mesh-opacity-2: rgba(124, 92, 255, .04);--sidebar-bg: rgba(10, 10, 12, .95);--card-hover-border: rgba(255, 255, 255, .14);--th-bg: rgba(255, 255, 255, .02)}:root.theme-light{--primary-color: #b5973a;--primary-strong: #967c2c;--secondary-color: #856a20;--bg-color: #f8fafc;--bg-elevated: #ffffff;--surface-color: rgba(255, 255, 255, .78);--surface-color-hover: rgba(241, 245, 249, .92);--surface-solid: #ffffff;--text-primary: #0f172a;--text-secondary: #374151;--danger-color: #ef4444;--success-color: #10b981;--warning-color: #b5973a;--border-color: rgba(15, 23, 42, .08);--glass-border: 1px solid rgba(15, 23, 42, .08);--glow-primary: 0 0 0 1px rgba(181, 151, 58, .15);--glow-secondary: 0 0 0 1px rgba(140, 113, 40, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .08);--gradient-start: #f8fafc;--gradient-end: #f1f5f9;--mesh-opacity-1: rgba(181, 151, 58, .04);--mesh-opacity-2: rgba(140, 113, 40, .03);--sidebar-bg: rgba(255, 255, 255, .92);--card-hover-border: rgba(15, 23, 42, .12);--th-bg: rgba(15, 23, 42, .03)}:root.theme-light [style*="color: #fff"]:not(button):not(.btn):not(.status-badge):not(.pay-badge):not(.toast):not(.btn *),:root.theme-light [style*="color:#fff"]:not(button):not(.btn):not(.status-badge):not(.pay-badge):not(.toast):not(.btn *),:root.theme-light [style*="color: rgb(255, 255, 255)"]:not(button):not(.btn):not(.status-badge):not(.pay-badge):not(.toast):not(.btn *){color:var(--text-primary)!important}:root.theme-light .brand-icon-collapsed{mix-blend-mode:multiply;filter:drop-shadow(0 2px 8px rgba(181,137,26,.2)) brightness(.9)}:root.theme-light .app-watermark{mix-blend-mode:multiply;opacity:.12;filter:invert(1) brightness(.9)}@media (prefers-color-scheme: light){:root:not(.theme-dark){--primary-color: #b5973a;--primary-strong: #967c2c;--secondary-color: #856a20;--bg-color: #f8fafc;--bg-elevated: #ffffff;--surface-color: rgba(255, 255, 255, .78);--surface-color-hover: rgba(241, 245, 249, .92);--surface-solid: #ffffff;--text-primary: #0f172a;--text-secondary: #374151;--danger-color: #ef4444;--success-color: #10b981;--warning-color: #b5973a;--border-color: rgba(15, 23, 42, .08);--glass-border: 1px solid rgba(15, 23, 42, .08);--glow-primary: 0 0 0 1px rgba(181, 151, 58, .15);--glow-secondary: 0 0 0 1px rgba(140, 113, 40, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .08);--gradient-start: #f8fafc;--gradient-end: #f1f5f9;--mesh-opacity-1: rgba(181, 151, 58, .04);--mesh-opacity-2: rgba(140, 113, 40, .03);--sidebar-bg: rgba(255, 255, 255, .92);--card-hover-border: rgba(15, 23, 42, .12);--th-bg: rgba(15, 23, 42, .03)}:root:not(.theme-dark) [style*="color: #fff"]:not(button):not(.btn):not(.status-badge):not(.pay-badge):not(.toast):not(.btn *),:root:not(.theme-dark) [style*="color:#fff"]:not(button):not(.btn):not(.status-badge):not(.pay-badge):not(.toast):not(.btn *),:root:not(.theme-dark) [style*="color: rgb(255, 255, 255)"]:not(button):not(.btn):not(.status-badge):not(.pay-badge):not(.toast):not(.btn *){color:var(--text-primary)!important}:root:not(.theme-dark) .brand-icon-collapsed{mix-blend-mode:multiply;filter:drop-shadow(0 2px 8px rgba(181,137,26,.2)) brightness(.9)}:root:not(.theme-dark) .app-watermark{mix-blend-mode:multiply;opacity:.12;filter:invert(1) brightness(.9)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Outfit,sans-serif;background-color:var(--bg-color);background-image:radial-gradient(1100px 560px at 82% -12%,var(--mesh-opacity-1),transparent 60%),radial-gradient(900px 520px at -12% 112%,var(--mesh-opacity-2),transparent 55%),linear-gradient(180deg,var(--gradient-start) 0%,var(--gradient-end) 100%);background-attachment:fixed;color:var(--text-primary);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:.1px}.app-container{display:flex;min-height:100vh}.sidebar{width:260px;background-color:var(--sidebar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem 1.5rem;border-right:var(--glass-border);display:flex;flex-direction:column;z-index:10}.brand{margin-bottom:2rem;text-align:center;display:flex;align-items:center;justify-content:center}.brand-logo{width:100%;max-width:180px;height:auto;display:block;filter:drop-shadow(0 0 8px rgba(0,240,255,.25))}.brand-icon-collapsed{display:none;width:40px;height:40px;flex-shrink:0;object-fit:contain;border-radius:10px;mix-blend-mode:screen;filter:drop-shadow(0 2px 8px rgba(181,137,26,.5)) brightness(1.08);transition:transform .22s ease,filter .22s ease}.brand-icon-collapsed:hover{transform:scale(1.12);filter:drop-shadow(0 3px 14px rgba(232,192,64,.65)) brightness(1.15)}.brand-fallback{font-size:1.8rem;font-weight:800;color:#fff;letter-spacing:2px;text-transform:uppercase;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.app-watermark-wrap{position:fixed;bottom:-40px;right:-40px;width:56%;max-width:540px;min-width:240px;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.app-watermark-wrap:before{content:"";position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background:radial-gradient(ellipse at 70% 70%,rgba(0,240,255,.14) 0%,rgba(0,255,102,.06) 40%,transparent 72%);pointer-events:none;animation:wm-glow 9s ease-in-out infinite}@keyframes wm-glow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.app-watermark{width:100%;height:auto;display:block;mix-blend-mode:screen;opacity:.22;filter:drop-shadow(0 0 26px rgba(0,240,255,.3)) drop-shadow(0 0 70px rgba(0,200,255,.16));animation:wm-breathe 9s ease-in-out infinite}@keyframes wm-breathe{0%,to{opacity:.2}50%{opacity:.32}}.doc-watermark{display:none}.report-header-logo{width:145px;height:auto;display:block;margin-bottom:.55rem;border-radius:5px;background:#fff;padding:3px 8px}.report-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:.7rem;flex-shrink:0}.report-full-thumb{width:68px;height:auto;border-radius:5px;mix-blend-mode:screen;opacity:.88}.nav-menu{list-style:none;display:flex;flex-direction:column;gap:.8rem}.nav-item{padding:1rem 1.2rem;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:12px;color:var(--text-secondary);font-weight:600;border:1px solid transparent}.nav-item:hover{background-color:var(--tr-hover-bg);color:var(--primary-color)}.nav-item.active{background:linear-gradient(90deg,var(--glow-primary),transparent);color:var(--primary-color);border-left:3px solid var(--primary-color);box-shadow:-10px 0 15px -10px var(--primary-color)}.main-content{flex:1;padding:1.5rem 2.5rem 2.5rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;position:relative}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0}.header h1{font-size:1.9rem;font-weight:700;letter-spacing:-.5px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem}.dash-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.dash-hello{font-size:1.45rem;font-weight:800;color:var(--text-primary);margin:0}.dash-date{color:var(--text-secondary);font-size:.88rem;margin:.2rem 0 0}.dash-section-title{display:flex;align-items:center;gap:.45rem;font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 .8rem}.dash-section-title svg{color:var(--primary-color)}.card{background:var(--surface-color);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:1.5rem 1.6rem;border-radius:var(--radius);border:var(--glass-border);box-shadow:var(--shadow-md);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--primary-color);opacity:.55}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:#ffffff24}.card.success:before{background:var(--success-color)}.card.danger:before{background:var(--danger-color)}.card.warning:before{background:var(--warning-color)}.card.primary:before{background:var(--primary-color)}.card h3{font-size:.82rem;color:var(--text-secondary);margin-bottom:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.card .value{font-size:2rem;font-weight:700;color:var(--text-primary);font-family:JetBrains Mono,monospace;letter-spacing:-.5px}.table-container{background:var(--surface-color);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:1.4rem 1.5rem;border-radius:var(--radius);border:var(--glass-border);box-shadow:var(--shadow-md);overflow-x:auto}.table-container h2{margin-bottom:1.2rem;font-size:1.25rem;display:flex;justify-content:space-between;align-items:center}table{width:100%;border-collapse:collapse}th,td{padding:.78rem 1rem;text-align:left}tbody tr{transition:background .15s ease}tbody tr:hover td{background:var(--tr-hover-bg)}tbody td{border-bottom:1px solid var(--border-color)}tbody tr:last-child td{border-bottom:none}th{color:var(--text-secondary);font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.6px;border-bottom:1px solid var(--border-color)}.mono-text{font-family:JetBrains Mono,monospace;letter-spacing:.3px}.btn{padding:.6rem 1.2rem;border:none;border-radius:9px;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,opacity .18s ease;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:7px;letter-spacing:.2px;font-size:.86rem;line-height:1.2}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--primary-strong));color:#04222a;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-md);filter:brightness(1.05)}.btn-secondary{background:#ffffff0a;color:var(--text-primary);border:1px solid rgba(255,255,255,.12)}.btn-secondary:hover{background:#ffffff14;border-color:#fff3}.btn-success{background:linear-gradient(135deg,var(--success-color),#1ec46f);color:#032615;box-shadow:var(--shadow-sm)}.btn-success:hover{box-shadow:var(--shadow-md);filter:brightness(1.05)}.btn-warning{background:linear-gradient(135deg,var(--warning-color),#e09a1f);color:#2b1d00;box-shadow:var(--shadow-sm)}.btn-warning:hover{box-shadow:var(--shadow-md);filter:brightness(1.05)}.btn-danger{background:linear-gradient(135deg,var(--danger-color),#e0344a);color:#fff;box-shadow:var(--shadow-sm)}.btn-danger:hover{box-shadow:var(--shadow-md);filter:brightness(1.05)}.btn:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .6s cubic-bezier(.16,1,.3,1)}.status-badge{display:inline-flex;align-items:center;padding:.25rem .7rem;border-radius:20px;font-size:.74rem;font-weight:600;letter-spacing:.3px}.status-paid{background:#00ff6626;color:var(--success-color);border:1px solid rgba(0,255,102,.3)}.status-pending{background:#ffcc0026;color:var(--warning-color);border:1px solid rgba(255,204,0,.3)}.status-overdue{background:#ff003c26;color:var(--danger-color);border:1px solid rgba(255,0,60,.3)}.status-open{background:#00f0ff26;color:var(--primary-color);border:1px solid rgba(0,240,255,.3)}.payroll-summary{display:flex;justify-content:space-between;align-items:center;background:#00f0ff0d;border:1px solid rgba(0,240,255,.2);padding:1.5rem 2rem;border-radius:12px;margin-bottom:2rem}.payroll-total .label{color:var(--text-secondary);font-size:1rem;text-transform:uppercase;letter-spacing:1px}.payroll-total .amount{font-size:2.5rem;font-weight:800;color:var(--primary-color);font-family:JetBrains Mono,monospace;text-shadow:var(--glow-primary)}.grid-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:-1;mask-image:radial-gradient(circle at center,black 40%,transparent 80%);-webkit-mask-image:radial-gradient(circle at center,black 40%,transparent 80%)}.role-badge{display:flex;align-items:center;gap:6px;padding:.5rem 1rem;border-radius:8px;font-size:.8rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:1.5rem}.role-manager{background:#00f0ff12;color:var(--primary-color);border:1px solid rgba(0,240,255,.2)}.role-admin{background:#7000ff1f;color:#a855f7;border:1px solid rgba(112,0,255,.3)}.nav-item.admin-unlock{margin-top:auto;color:var(--text-secondary);border:1px dashed rgba(255,255,255,.1)}.nav-item.admin-unlock:hover,.nav-item.active-admin{color:#a855f7;border-color:#a855f7}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.section-sub{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.empty-state{background:var(--surface-color);border:var(--glass-border);border-radius:12px;padding:3rem;text-align:center;color:var(--text-secondary);font-size:1rem}.page-loading{display:flex;align-items:center;justify-content:center;padding:4rem;color:var(--text-secondary);font-size:.95rem}.filter-tabs{display:flex;gap:.5rem}.filter-tab{padding:.5rem 1.2rem;border-radius:8px;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.filter-tab:hover{color:#fff;border-color:#fff3}.filter-tab.active{background:#00f0ff1a;color:var(--primary-color);border-color:#00f0ff4d}.workers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem}.worker-card{background:var(--surface-color);border:var(--glass-border);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.8rem;position:relative;transition:all .3s}.worker-card:hover{transform:translateY(-3px);border-color:#00f0ff33}.worker-card.inactive{opacity:.5}.worker-avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;background:#00f0ff14;display:flex;align-items:center;justify-content:center;border:2px solid rgba(0,240,255,.2);flex-shrink:0;color:var(--text-secondary)}.worker-avatar img{width:100%;height:100%;object-fit:cover}.worker-info{text-align:center;width:100%}.worker-name{font-weight:700;font-size:1.05rem;margin-bottom:4px;color:#fff}.worker-trade-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:.75rem;font-weight:700;background:#00f0ff1a;color:var(--primary-color);border:1px solid rgba(0,240,255,.2);margin-bottom:6px}.worker-rate{font-family:JetBrains Mono,monospace;font-size:1.2rem;font-weight:800;color:var(--success-color)}.worker-rate span{font-size:.8rem;color:var(--text-secondary);font-weight:400}.worker-detail{font-size:.78rem;color:var(--text-secondary);margin-top:3px}.worker-detail.momo{color:var(--warning-color)}.worker-actions{display:flex;gap:.5rem;justify-content:center;width:100%;margin-top:.3rem}.inactive-badge{position:absolute;top:10px;left:10px;background:#ff003c26;color:var(--danger-color);border:1px solid rgba(255,0,60,.3);font-size:.65rem;font-weight:800;padding:2px 8px;border-radius:4px;letter-spacing:1px}.icon-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:1rem}.icon-btn:hover{color:#fff;border-color:#ffffff4d;background:#ffffff0d}.icon-btn.danger:hover{color:var(--danger-color);border-color:var(--danger-color);background:#ff003c14}.icon-btn.success:hover{color:var(--success-color);border-color:var(--success-color);background:#00ff6614}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#0c0c12fa;border:var(--glass-border);border-radius:20px;padding:2rem;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 0 60px #00f0ff14}.modal-header{display:flex;align-items:center;gap:.8rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.modal-header h3{font-size:1.4rem;font-weight:700}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.8rem;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-full{grid-column:1 / -1}.form-group label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px}.form-input{background:#ffffff0a;border:1px solid var(--border-color);border-radius:8px;padding:.7rem 1rem;color:var(--text-primary);font-family:inherit;font-size:.95rem;transition:border-color .2s;width:100%}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #00f0ff1a}.form-input option{background:#0a0a0f;color:#fff}.theme-light .form-input option{background:#fff;color:#0f172a}.photo-section{display:flex;justify-content:center;margin-bottom:1.5rem}.photo-preview{display:flex;flex-direction:column;align-items:center;gap:.8rem}.photo-preview img{width:90px;height:90px;border-radius:50%;object-fit:cover;border:3px solid var(--primary-color);box-shadow:0 0 15px #00f0ff4d}.photo-btn{display:flex;align-items:center;gap:8px;border:1px dashed rgba(0,240,255,.4)!important;padding:.8rem 1.5rem}.attendance-list{display:flex;flex-direction:column;gap:.8rem}.attendance-list.compact .attendance-row{padding:.8rem 1rem}.attendance-row{background:var(--surface-color);border:var(--glass-border);border-radius:14px;padding:1rem 1.4rem;display:flex;align-items:center;gap:1.2rem;transition:all .3s}.attendance-row:hover{border-color:#ffffff1f}.attendance-row.att-active{border-color:#ffcc0040;background:#ffcc000a}.attendance-row.att-done{border-color:#0f63;background:#00ff6608}.att-avatar-wrap{position:relative;flex-shrink:0}.att-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;background:#00f0ff14;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border:2px solid rgba(255,255,255,.08);cursor:pointer}.att-avatar img{width:100%;height:100%;object-fit:cover}.status-dot{position:absolute;bottom:1px;right:1px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-color)}.dot-green{background:var(--success-color)}.dot-yellow{background:var(--warning-color)}.dot-grey{background:#444}.att-info{flex:1;min-width:0}.att-name{font-weight:700;font-size:1rem;color:#fff}.att-meta{font-size:.82rem;color:var(--text-secondary);margin-top:2px}.att-times{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:5px}.att-time-chip{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;padding:2px 8px;border-radius:20px;font-family:JetBrains Mono,monospace}.att-time-chip.in{background:#00f0ff14;color:var(--primary-color);border:1px solid rgba(0,240,255,.2)}.att-time-chip.out{background:#ff003c14;color:var(--danger-color);border:1px solid rgba(255,0,60,.2)}.att-action{flex-shrink:0;text-align:right}.att-complete-badge{display:flex;align-items:center;gap:6px;color:var(--success-color);font-weight:800;font-family:JetBrains Mono,monospace;font-size:1rem}.live-badge{font-size:.75rem;font-weight:800;color:var(--warning-color);letter-spacing:1px;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.camera-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.camera-modal{background:#08080efc;border:var(--glass-border);border-radius:20px;width:100%;max-width:500px;overflow:hidden;box-shadow:0 0 80px #00f0ff1f}.camera-header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;border-bottom:1px solid var(--border-color)}.camera-title{font-size:1.1rem;font-weight:700}.camera-viewfinder{position:relative;background:#000;aspect-ratio:4/3;overflow:hidden}.camera-video{width:100%;height:100%;object-fit:cover;display:block}.camera-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.9rem}.camera-controls{padding:1.2rem 1.5rem;display:flex;gap:1rem;justify-content:center;border-top:1px solid var(--border-color)}.camera-shutter-btn{background:linear-gradient(45deg,var(--primary-color),#0099ff);color:#000;font-weight:800;padding:.9rem 2.5rem;font-size:1rem;box-shadow:var(--glow-primary);border:none}.camera-shutter-btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none}.camera-error{padding:2.5rem;text-align:center;color:var(--danger-color)}.camera-frame-corner{position:absolute;width:22px;height:22px;border-color:var(--primary-color);border-style:solid;opacity:.6}.camera-frame-corner.tl{top:10px;left:10px;border-width:2px 0 0 2px}.camera-frame-corner.tr{top:10px;right:10px;border-width:2px 2px 0 0}.camera-frame-corner.bl{bottom:10px;left:10px;border-width:0 0 2px 2px}.camera-frame-corner.br{bottom:10px;right:10px;border-width:0 2px 2px 0}.photo-lightbox{background:#08080efc;border:var(--glass-border);border-radius:16px;width:100%;max-width:420px;overflow:hidden;padding-bottom:1rem}.photo-lightbox .camera-header{border-bottom:1px solid var(--border-color)}.week-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;background:var(--surface-color);border:var(--glass-border);border-radius:12px;padding:1rem 1.5rem}.week-label{flex:1;text-align:center}.week-title{display:block;font-weight:700;font-size:1.1rem}.week-dates{display:block;font-size:.8rem;color:var(--text-secondary);margin-top:2px}.day-strip{display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:4px}.day-chip{flex-shrink:0;min-width:60px;padding:.6rem .4rem;border-radius:10px;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-secondary);cursor:pointer;text-align:center;transition:all .2s;font-family:inherit}.day-chip:hover:not(:disabled){border-color:#00f0ff4d;color:#fff}.day-chip.today{border-color:#00f0ff66;color:var(--primary-color)}.day-chip.selected{background:#00f0ff1a;border-color:var(--primary-color);color:var(--primary-color)}.day-chip.future{opacity:.3;cursor:default}.day-chip-name{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.day-chip-num{font-size:1.2rem;font-weight:800;line-height:1.2}.day-chip-count{font-size:.75rem;font-family:JetBrains Mono,monospace;margin-top:2px}.report-controls{margin-bottom:1rem}.report-document{background:var(--surface-color);border:var(--glass-border);border-radius:16px;padding:2.5rem;position:relative}.report-header{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(0,240,255,.15)}.report-company{font-size:.8rem;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--primary-color);margin-bottom:4px}.report-title{font-size:1.6rem;font-weight:800;color:#fff;margin-bottom:4px}.report-period-label{font-size:1rem;color:var(--text-secondary)}.report-meta-block{text-align:right;font-size:.85rem;color:var(--text-secondary);display:flex;flex-direction:column;gap:4px}.report-meta-block span{color:var(--text-primary);font-weight:600;margin-right:4px}.report-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2.5rem}.report-stat{background:#ffffff08;border:var(--glass-border);border-radius:12px;padding:1.2rem;text-align:center}.report-stat.highlight{background:#00f0ff0d;border-color:#00f0ff33}.rstat-label{font-size:.78rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.rstat-value{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:800;color:#fff;line-height:1.1}.report-section-header{margin:2rem 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--border-color)}.report-section-header h3{font-size:1.1rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.report-table{background:transparent!important;border:none!important;padding:0!important}.attendance-pct-bar{position:relative;background:#ffffff0f;border-radius:4px;height:18px;min-width:80px;overflow:hidden}.attendance-pct-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;opacity:.7;transition:width .4s ease}.attendance-pct-label{position:relative;z-index:1;font-size:.72rem;font-weight:700;font-family:JetBrains Mono,monospace;padding:0 6px;line-height:18px;color:#fff}.totals-row td{border-top:1px solid rgba(0,240,255,.2)}.report-footer{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border-color);font-size:.8rem;color:var(--text-secondary)}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.sidebar,.header,.report-controls,.grid-overlay,.app-watermark-wrap{display:none!important}.doc-watermark{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:340px;opacity:.14;filter:grayscale(1) brightness(.55);z-index:9998;pointer-events:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-header-logo{width:130px;background:transparent;padding:0;border-radius:4px;filter:none;mix-blend-mode:normal;opacity:1;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-full-thumb{mix-blend-mode:normal;filter:none;opacity:.92;-webkit-print-color-adjust:exact;print-color-adjust:exact}.icon-btn,.btn,.report-controls,.rc-actions,.proj-actions,.exp-filter-row,.exp-add-row,.filter-tabs,.week-nav,.day-strip,.project-selector,.header-proj-chip{display:none!important}.pay-badge.clickable{display:inline-flex!important}body{background:#fff!important;color:#111!important;font-family:Arial,sans-serif}.app-container{display:block}.main-content{padding:0!important;background:transparent!important}.report-document{background:#fff!important;border:none!important;box-shadow:none!important;border-radius:0!important;padding:1.5cm 2cm!important;margin:0!important;color:#111!important}.report-title{color:#111!important}.report-period-label{color:#555!important}.report-header{border-bottom-color:#ccc!important}.report-meta-block{color:#444!important}.report-meta-block span{color:#111!important}.report-stats-grid{grid-template-columns:repeat(4,1fr);gap:.5rem}.report-stat{background:#f5f5f5!important;border:1px solid #ddd!important;border-radius:6px!important}.report-stat.highlight{background:#e8f4fd!important;border-color:#b3d7f0!important}.rstat-label{color:#666!important}.rstat-value{color:#111!important;font-size:1.6rem}.table-container{background:transparent!important;border:none!important;padding:0!important;border-radius:0!important}table{border-collapse:collapse!important;width:100%}th,td{border:1px solid #ccc!important;padding:6px 8px!important;color:#111!important}th{background:#f0f0f0!important;font-weight:700}tbody tr{background:#fff!important}tbody tr:nth-child(2n){background:#fafafa!important}.totals-row td{background:#e8f0fe!important;font-weight:800}.attendance-pct-bar{background:#eee!important}.attendance-pct-fill{opacity:1!important}.attendance-pct-label,.mono-text{color:#111!important}.report-section-header h3{color:#444!important;border-bottom-color:#ccc!important}.report-footer{color:#888!important;border-top-color:#ccc!important}.report-document img{display:none!important}.report-section-header{page-break-before:auto}table{page-break-inside:auto}tr{page-break-inside:avoid}}@media (max-width: 768px){.sidebar{width:200px;padding:1.5rem 1rem}.main-content{padding:1.5rem}.form-grid{grid-template-columns:1fr}.attendance-row{flex-wrap:wrap}.att-action{width:100%;display:flex;justify-content:flex-end;margin-top:.5rem}.workers-grid{grid-template-columns:1fr 1fr}.header h1{font-size:1.8rem}.report-stats-grid{grid-template-columns:1fr 1fr}.report-header{flex-direction:column}.report-meta-block{text-align:left}}.drawer-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:199}.drawer-close,.hamburger-btn{display:none}.sidebar-top{display:flex;align-items:center;justify-content:space-between;width:100%}@media (max-width: 768px){.app-container{flex-direction:column}.sidebar{position:fixed;top:0;left:0;height:100dvh;width:80vw;max-width:300px;z-index:200;transform:translate(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);overflow-y:auto;border-right:1px solid var(--border-color);border-radius:0;padding:1.2rem 1rem 2rem;flex-direction:column}.sidebar.drawer-open{transform:translate(0);box-shadow:4px 0 40px #0009}.drawer-backdrop{display:block}.drawer-close{display:flex;align-items:center;justify-content:center;background:#ffffff0f;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);padding:.4rem;cursor:pointer;flex-shrink:0}.hamburger-btn{display:flex}.main-content{width:100%;min-height:100dvh;padding:0 0 5rem}.header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#0a0d13f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);min-height:56px}.header h1{font-size:1.1rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}.header-proj-chip{font-size:.72rem;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:26vw}.nav-menu{gap:.2rem}.nav-item{padding:.75rem 1rem;font-size:.9rem;border-radius:10px;min-height:44px}.dashboard-grid{grid-template-columns:1fr;gap:.75rem;padding:.75rem}.stat-card{padding:1rem}.stat-value{font-size:1.8rem}.workers-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr;gap:.75rem}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:.65rem .9rem}.modal{width:100vw;max-width:100vw;max-height:92dvh;border-radius:20px 20px 0 0;margin:auto auto 0}.modal-overlay{align-items:flex-end;padding:0}.table-wrap,.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}table,.table-wrap table,.table-responsive table{min-width:520px}.attendance-row{flex-wrap:wrap;gap:.5rem}.att-action{width:100%;display:flex;justify-content:flex-end;margin-top:.3rem}.report-stats-grid{grid-template-columns:1fr 1fr}.report-header{flex-direction:column}.report-meta-block{text-align:left}.section-header,.page-header{padding:.75rem 1rem}.card,.stat-card{border-radius:12px}.btn-group{flex-wrap:wrap;gap:.4rem}.finance-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.expense-row{flex-wrap:wrap}}.report-cards{display:flex;flex-direction:column;gap:1rem}.report-card{background:var(--surface-color);border:var(--glass-border);border-radius:14px;padding:1.2rem 1.4rem;display:flex;align-items:flex-start;gap:1.2rem;transition:all .25s}.report-card:hover{border-color:#00f0ff2e;transform:translate(3px)}.rc-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#00f0ff0f;border:1px solid rgba(0,240,255,.15);border-radius:10px;padding:.6rem .9rem;min-width:60px;flex-shrink:0;text-align:center}.rc-day{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--primary-color)}.rc-num{font-size:1.8rem;font-weight:900;line-height:1.1;color:#fff;font-family:JetBrains Mono,monospace}.rc-month{font-size:.68rem;color:var(--text-secondary);margin-top:1px}.rc-body{flex:1;min-width:0}.rc-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}.rc-site{font-weight:700;color:#fff;font-size:.9rem}.rc-reporter{font-size:.8rem;color:var(--text-secondary)}.rc-weather{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:20px;background:#ffcc001a;color:var(--warning-color);border:1px solid rgba(255,204,0,.2)}.rc-summary{font-size:.87rem;color:var(--text-secondary);margin-bottom:.5rem;line-height:1.5}.rc-chips{display:flex;gap:.4rem;flex-wrap:wrap}.rc-chip{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.rc-chip.primary{background:#00f0ff1a;color:var(--primary-color);border:1px solid rgba(0,240,255,.2)}.rc-chip.success{background:#00ff661a;color:var(--success-color);border:1px solid rgba(0,255,102,.2)}.rc-chip.warning{background:#ffcc001a;color:var(--warning-color);border:1px solid rgba(255,204,0,.2)}.rc-chip.danger{background:#ff003c1a;color:var(--danger-color);border:1px solid rgba(255,0,60,.2)}.rc-chip.grey{background:#ffffff0f;color:var(--text-secondary);border:1px solid var(--border-color)}.rc-actions{display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}.sr-section{background:var(--surface-color);border:var(--glass-border);border-radius:14px;margin-bottom:1.2rem;overflow:hidden}.sr-section-hdr{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.4rem;border-bottom:1px solid var(--border-color);border-left:3px solid var(--primary-color);background:#00000026}.sr-section-title{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.95rem;color:#fff;text-transform:uppercase;letter-spacing:.8px}.sr-section-body{padding:1.2rem 1.4rem}.sr-table-header{display:flex;gap:.6rem;align-items:center;padding:0 0 .5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:.5rem}.dyn-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.dyn-row .form-input{margin:0}.dyn-main{flex:1}.dyn-sm{flex-shrink:0}.sr-total-row{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1rem;margin-top:.5rem;background:#00f0ff0d;border:1px solid rgba(0,240,255,.15);border-radius:8px;font-weight:700;font-size:.9rem;color:var(--text-secondary)}.sr-total-amount{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:800;color:var(--primary-color)}.present-toggle{display:flex;align-items:center;cursor:pointer}.present-toggle input{display:none}.toggle-label{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:20px;letter-spacing:.5px;white-space:nowrap}.toggle-label.yes{background:#00ff661f;color:var(--success-color);border:1px solid rgba(0,255,102,.25)}.toggle-label.no{background:#ff003c1a;color:var(--danger-color);border:1px solid rgba(255,0,60,.2)}.sr-textarea{resize:vertical;min-height:90px;line-height:1.7}.photo-grid{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.5rem}.photo-thumb{position:relative;width:120px;border-radius:10px;overflow:hidden;border:1px solid var(--border-color);background:#000}.photo-thumb img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}.photo-thumb-name{font-size:.65rem;color:var(--text-secondary);padding:4px 6px;background:#000000b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-thumb-remove{position:absolute;top:4px;right:4px;background:#000000b3;border:none;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff}.photo-thumb-remove:hover{background:var(--danger-color)}.photo-thumb.view-only .photo-thumb-remove{display:none}.sr-text-block{background:#ffffff08;border:var(--glass-border);border-radius:10px;padding:1.2rem;margin-bottom:1.5rem;line-height:1.8;display:flex;gap:.5rem;align-items:flex-start;white-space:pre-wrap}@media print{.sr-print-doc .report-section-header{page-break-before:auto}.sr-page-break{page-break-before:always!important}.sr-text-block{background:#f9f9f9!important;border-color:#ddd!important;color:#111!important}.photo-grid{display:flex;flex-wrap:wrap;gap:.4cm}.photo-thumb{width:5cm;border:1px solid #ccc!important;border-radius:4px!important}.photo-thumb img{aspect-ratio:4/3;object-fit:cover}.photo-thumb-name{color:#555!important;background:#f0f0f0!important}.toggle-label.yes{background:#e0f5ea!important;color:#157935!important;border-color:#80cfa0!important}.toggle-label.no{background:#fde8ec!important;color:#c0152e!important;border-color:#f08090!important}.worker-trade-badge{background:#e8eaf8!important;color:#24a!important;border-color:#aab0e0!important}.rc-chip,.status-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 20%,rgba(0,240,255,.08),transparent 55%),radial-gradient(ellipse at 75% 80%,rgba(0,255,102,.05),transparent 50%),var(--bg-color, #07090d);overflow:hidden;padding:1.5rem}.login-bg-watermark{position:absolute;bottom:-8%;right:-6%;width:55%;max-width:620px;mix-blend-mode:screen;opacity:.06;pointer-events:none;filter:drop-shadow(0 0 40px rgba(0,240,255,.2))}.login-card{position:relative;z-index:2;width:100%;max-width:400px;background:#101218d1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(0,240,255,.14);border-radius:18px;padding:2.4rem 2.2rem 1.8rem;box-shadow:0 0 0 1px #ffffff05,0 24px 70px #0009,0 0 60px #00f0ff0d;animation:login-rise .5s cubic-bezier(.16,1,.3,1)}@keyframes login-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.login-brand{display:flex;justify-content:center;margin-bottom:1.6rem}.login-brand img{width:175px;height:auto}.login-brand-fallback{font-size:1.5rem;font-weight:800;letter-spacing:2px;color:#fff;text-transform:uppercase}.login-heading{text-align:center;margin-bottom:1.6rem}.login-heading h1{font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:.3rem}.login-heading p{font-size:.85rem;color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:1rem}.login-field label{display:block;font-size:.78rem;font-weight:600;color:var(--text-secondary);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.5px}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:.85rem;color:var(--text-secondary);pointer-events:none}.login-input-wrap input{width:100%;background:#00000059;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.75rem .85rem .75rem 2.5rem;color:#fff;font-size:.92rem;transition:all .2s}.login-input-wrap input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #00f0ff1f;background:#00000080}.login-eye{position:absolute;right:.6rem;background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:.35rem;display:flex;border-radius:6px}.login-eye:hover{color:#fff}.login-error{display:flex;align-items:center;gap:.45rem;background:#ff3c3c1a;border:1px solid rgba(255,60,60,.25);color:#ff8080;padding:.6rem .8rem;border-radius:9px;font-size:.82rem}.login-submit{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.3rem;padding:.85rem;background:linear-gradient(135deg,var(--primary-color),#00b8d4);color:#00131a;font-weight:800;font-size:.95rem;border:none;border-radius:10px;cursor:pointer;transition:all .2s;box-shadow:0 6px 22px #00f0ff38}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 9px 28px #00f0ff4d}.login-submit:disabled{opacity:.7;cursor:default}.login-spinner{width:16px;height:16px;border:2px solid rgba(0,19,26,.3);border-top-color:#00131a;border-radius:50%;animation:login-spin .6s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-help{text-align:center;font-size:.78rem;color:var(--text-secondary);margin-top:.2rem}.login-link{background:none;border:none;padding:0;cursor:pointer;font-size:inherit;color:var(--primary-color);font-weight:600}.login-link:hover{text-decoration:underline}.welcome-splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 50% 0%,#11151d 0%,var(--bg-color, #07090d) 70%);overflow:hidden;animation:welcome-fade .35s ease}.welcome-watermark{position:absolute;width:min(78vw,560px);opacity:.06;filter:grayscale(1);pointer-events:none;-webkit-user-select:none;user-select:none}.welcome-inner{position:relative;text-align:center;padding:1.5rem}.welcome-logo{height:60px;max-width:280px;object-fit:contain;margin-bottom:1.6rem;animation:welcome-rise .6s ease both}.welcome-spinner{width:46px;height:46px;margin:0 auto 1.4rem;border:3px solid rgba(255,255,255,.12);border-top-color:var(--primary-color);border-radius:50%;animation:welcome-spin .9s linear infinite}.welcome-greeting{font-size:1.7rem;font-weight:800;color:#fff;margin:0 0 .4rem;animation:welcome-rise .7s ease both}.welcome-sub{color:var(--text-secondary);font-size:.92rem;margin:0;animation:welcome-rise .85s ease both}@keyframes welcome-fade{0%{opacity:0}to{opacity:1}}@keyframes welcome-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes welcome-spin{to{transform:rotate(360deg)}}.tour-overlay{z-index:9998}.tour-modal{max-width:440px;text-align:center;position:relative}.tour-close{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:6px}.tour-close:hover{background:#ffffff0f;color:#fff}.tour-hello{font-size:.92rem;color:var(--primary-color);margin:0 0 1rem;font-weight:600}.tour-icon{width:64px;height:64px;margin:.3rem auto .9rem;border-radius:16px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--primary-color) 16%,transparent);color:var(--primary-color)}.tour-title{font-size:1.3rem;font-weight:800;color:#fff;margin:0 0 .5rem}.tour-what{color:var(--text-primary);font-size:.95rem;margin:0 0 .9rem;line-height:1.5}.tour-how{background:var(--bg-color);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:.7rem .9rem;font-size:.86rem;color:var(--text-secondary);line-height:1.5;text-align:left}.tour-how strong{color:var(--primary-color)}.tour-dots{display:flex;gap:6px;justify-content:center;margin:1.1rem 0 .9rem}.tour-dot{width:8px;height:8px;border-radius:50%;background:#ffffff2e;cursor:pointer;transition:all .2s}.tour-dot.active{background:var(--primary-color);width:22px;border-radius:4px}.tour-actions{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.tour-progress{margin-top:.8rem;font-size:.76rem;color:var(--text-secondary)}.stock-tracker{font-size:.85rem}.stock-tracker .stk-week td{background:#22c55e1a;color:var(--success-color);font-weight:800;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px}.stock-tracker .stk-subtotal td{background:#f59e0b14;color:var(--text-secondary);font-weight:700;font-size:.8rem}.stock-tracker .stk-adjust td{background:#0ea5e914}.stock-tracker .stk-total td{background:#2bd6e81a;color:#fff;font-weight:800;font-size:.9rem;border-top:2px solid var(--primary-color)}.stk-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.4rem}.stk-summary div{background:var(--bg-color);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:.9rem 1.1rem;display:flex;flex-direction:column;gap:.3rem}.stk-summary span{color:var(--text-secondary);font-size:.8rem}.stk-summary strong{font-size:1.05rem}@media (max-width: 720px){.stk-summary{grid-template-columns:1fr}}.login-footer{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:1.6rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.07);font-size:.74rem;color:var(--text-secondary)}.login-tagline{position:relative;z-index:2;margin-top:1.6rem;font-size:.8rem;letter-spacing:3px;text-transform:uppercase;color:#ffffff40;font-weight:600}.user-card{display:flex;align-items:center;gap:.7rem;background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:.7rem .8rem;margin-bottom:.8rem;position:relative}.user-settings-gear{transition:transform .3s ease,color .2s ease}.user-card:hover .user-settings-gear{transform:rotate(45deg);color:var(--primary-color)!important}.sidebar-collapsed .user-settings-gear{position:absolute;bottom:0;right:0;background:var(--sidebar-bg, #0f172a);border:1px solid rgba(255,255,255,.2);border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:2px;box-shadow:0 2px 4px #00000080;margin-left:0!important}.user-avatar{width:38px;height:38px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;color:#00131a;background:var(--primary-color)}.user-avatar.role-admin{background:#a855f7;color:#fff}.user-avatar.role-finance{background:#f59e0b;color:#1a1000}.user-avatar.role-site{background:#0ea5e9;color:#00131a}.user-meta{min-width:0}.user-name{font-weight:700;color:#fff;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-title{font-size:.72rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-badge.role-site{background:#0ea5e91f;color:#0ea5e9}.sr-search-row{display:flex;gap:.7rem;margin-bottom:1.2rem;flex-wrap:wrap}.sr-search{flex:1;min-width:220px;display:flex;align-items:center;gap:.5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:0 .8rem;color:var(--text-secondary);transition:border-color .15s}.sr-search:focus-within{border-color:#2bd6e866}.sr-search input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-family:inherit;font-size:.9rem;padding:.6rem 0}.sr-search input::placeholder{color:var(--text-secondary)}.notif-wrap{position:relative}.notif-bell{position:relative;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:var(--text-primary);width:38px;height:38px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.notif-bell:hover{background:#ffffff17}.notif-dot{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--danger-color);color:#fff;font-size:.66rem;font-weight:800;display:flex;align-items:center;justify-content:center}.notif-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:200;width:340px;max-width:90vw;background:var(--surface-solid);border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden;animation:fadeIn .15s ease}.notif-head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--border-color);font-weight:700;font-size:.9rem}.notif-head button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.78rem;font-family:inherit}.notif-list{max-height:380px;overflow-y:auto}.notif-empty{padding:2rem 1rem;text-align:center;color:var(--text-secondary);font-size:.85rem}.notif-item{padding:.7rem 1rem;border-bottom:1px solid var(--border-color)}.notif-item.unread{background:#2bd6e80d;border-left:3px solid var(--primary-color)}.notif-title{font-weight:600;font-size:.85rem;margin-bottom:2px}.notif-msg{font-size:.8rem;color:var(--text-secondary);line-height:1.4}.notif-time{font-size:.7rem;color:var(--text-secondary);margin-top:4px;opacity:.7}.scan-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#05070cc7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.scan-box{background:var(--surface-solid);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:2rem 2.4rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;text-align:center}.scan-import-banner{display:flex;align-items:center;gap:.6rem;background:#2bd6e814;border:1px solid rgba(43,214,232,.25);color:var(--primary-color);border-radius:10px;padding:.7rem 1rem;font-size:.86rem;margin-bottom:1.2rem}.tpl-menu-wrap{position:relative;display:inline-block}.tpl-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:50;background:var(--surface-solid);border:1px solid rgba(255,255,255,.12);border-radius:10px;box-shadow:var(--shadow-lg);padding:.35rem;min-width:210px;display:flex;flex-direction:column;gap:2px;animation:fadeIn .15s ease}.tpl-menu button{display:flex;align-items:center;gap:.6rem;background:none;border:none;cursor:pointer;color:var(--text-primary);font-family:inherit;font-size:.86rem;padding:.6rem .7rem;border-radius:7px;text-align:left;transition:background .15s ease}.tpl-menu button:hover{background:#ffffff0f}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-empty{color:var(--text-secondary);font-size:.85rem;padding:2rem;text-align:center}.chart-axis-label{fill:var(--text-secondary);font-size:11px;font-family:inherit}.chart-point-label{fill:#fff;font-size:11px;font-weight:700;font-family:JetBrains Mono,monospace}.donut-wrap{display:flex;align-items:center;justify-content:center}.donut-center{fill:#fff;font-size:17px;font-weight:800;font-family:JetBrains Mono,monospace}.donut-center-sub{fill:var(--text-secondary);font-size:10px;text-transform:uppercase;letter-spacing:1px}.chart-legend{display:flex;flex-direction:column;gap:.5rem;flex:1}.chart-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.chart-legend-dot{width:11px;height:11px;border-radius:3px;flex-shrink:0}.chart-legend-label{color:var(--text-secondary)}.chart-legend-value{margin-left:auto;font-weight:700;color:#fff;font-family:JetBrains Mono,monospace}.dash-chart-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;margin:1.5rem 0}@media (max-width: 900px){.dash-chart-grid{grid-template-columns:1fr}}.dash-donut-row{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}.fin-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}.fin-kpi{position:relative;border-radius:14px;padding:1.2rem 1.3rem;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#ffffff0a,#ffffff03)}.fin-kpi-icon{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center}.fin-kpi-label{font-size:.78rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px}.fin-kpi-value{font-size:1.7rem;font-weight:800;font-family:JetBrains Mono,monospace;margin:.3rem 0 .1rem}.fin-kpi-sub{font-size:.74rem;color:var(--text-secondary)}.fin-kpi.inflow{border-color:#00ff6640}.fin-kpi.inflow .fin-kpi-icon{background:#00ff661f;color:var(--success-color)}.fin-kpi.inflow .fin-kpi-value{color:var(--success-color)}.fin-kpi.outflow .fin-kpi-icon{background:#ff50501f;color:#ff6b6b}.fin-kpi.outflow .fin-kpi-value{color:#ff8080}.fin-kpi.balance .fin-kpi-icon{background:#00f0ff1f;color:var(--primary-color)}.fin-kpi.balance .fin-kpi-value{color:var(--primary-color)}.fin-kpi.negative{border-color:#ff505059}.fin-kpi.negative .fin-kpi-icon{background:#ff50501f;color:#ff6b6b}.fin-kpi.negative .fin-kpi-value{color:#ff8080}.fin-kpi.owed .fin-kpi-icon{background:#f59e0b24;color:#f59e0b}.fin-kpi.owed .fin-kpi-value{color:#f59e0b}.fin-panel{background:var(--surface-color);border:var(--glass-border);border-radius:14px;padding:1.3rem 1.4rem;margin-bottom:1.5rem}.fin-panel-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:var(--primary-color);margin-bottom:1rem}.fin-flow-compare{display:flex;flex-direction:column;gap:.7rem}.fin-flow-row{display:flex;align-items:center;gap:.8rem}.fin-flow-label{width:50px;font-size:.82rem;display:flex;align-items:center;gap:.3rem;color:var(--text-secondary)}.fin-flow-track{flex:1;height:30px;background:#ffffff0a;border-radius:8px;overflow:hidden}.fin-flow-fill{height:100%;display:flex;align-items:center;padding:0 .7rem;font-size:.8rem;font-weight:800;color:#00131a;font-family:monospace;border-radius:8px;white-space:nowrap;transition:width .6s cubic-bezier(.16,1,.3,1)}.fin-flow-fill.in{background:linear-gradient(90deg,#0f6,#00cc52)}.fin-flow-fill.out{background:linear-gradient(90deg,#ff6b6b,#e04545);color:#fff}.fin-net-line{margin-top:1rem;font-size:.9rem;text-align:right}.fin-cost-row{margin-bottom:1rem}.fin-cost-head{display:flex;justify-content:space-between;font-size:.88rem;color:#fff;margin-bottom:.4rem}.fin-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:#ffffff0d}.fin-bar-paid{background:var(--success-color);transition:width .6s ease}.fin-bar-owed{background:#f59e0b;transition:width .6s ease}.fin-cost-legend{display:flex;gap:1rem;font-size:.74rem;margin-top:.35rem}.fin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 900px){.fin-two-col{grid-template-columns:1fr}}.fin-cat-row{margin-bottom:.8rem}.fin-cat-head{display:flex;justify-content:space-between;font-size:.83rem;color:var(--text-secondary);margin-bottom:.3rem}.fin-cat-track{height:8px;background:#ffffff0d;border-radius:4px;overflow:hidden}.fin-cat-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),#00b8d4);border-radius:4px;transition:width .6s ease}.fin-owed-list{display:flex;flex-direction:column;gap:.5rem;max-height:320px;overflow-y:auto}.fin-owed-item{display:flex;justify-content:space-between;align-items:center;background:#f59e0b0d;border:1px solid rgba(245,158,11,.12);border-radius:8px;padding:.55rem .8rem;font-size:.85rem}@media print{.fin-flow-fill,.fin-bar-paid,.fin-bar-owed,.fin-cat-fill,.fin-kpi{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.pay-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:20px;border:1px solid transparent;white-space:nowrap}.pay-badge.paid{background:#00ff661a;color:var(--success-color);border-color:#00ff6640}.pay-badge.owed{background:#f59e0b1a;color:#f59e0b;border-color:#f59e0b40}.pay-badge.clickable{cursor:pointer;transition:all .15s}.pay-badge.clickable:hover{filter:brightness(1.25);transform:translateY(-1px)}@media print{.pay-badge{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.nav-item.seed-btn{font-size:.72rem!important;padding:.4rem .8rem!important;opacity:.55;color:var(--text-secondary)!important;border:1px dashed rgba(255,255,255,.12);border-radius:6px;justify-content:center;letter-spacing:.5px}.nav-item.seed-btn:hover{opacity:.85;border-color:#00f0ff4d}.rc-status-ribbon{position:absolute;top:0;right:0;display:flex;align-items:center;gap:.25rem;font-size:.65rem;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#000;padding:.18rem .6rem;border-radius:0 12px 0 8px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-card{position:relative}.report-card-submitted{border-left:3px solid #f59e0b!important}.report-card-approved{border-left:3px solid var(--success-color)!important}.report-card-rejected{border-left:3px solid var(--danger-color)!important}.report-card-draft{border-left:3px solid rgba(255,255,255,.15)!important}.rc-rejection-note{display:flex;align-items:center;gap:.3rem;color:var(--danger-color);font-size:.78rem;font-style:italic;margin:.3rem 0}.sr-view-toggle{display:flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.sr-view-toggle button{background:transparent;border:none;padding:.4rem .7rem;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;transition:background .15s,color .15s}.sr-view-toggle button:first-child{border-right:1px solid var(--border-color)}.sr-view-toggle button.active{background:#2bd6e81f;color:var(--primary-color)}.sr-view-toggle button:hover:not(.active){background:#ffffff0d;color:#fff}.sr-calendar{margin-top:.5rem}.sr-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.sr-cal-month-label{font-size:1.1rem;font-weight:700;color:#fff;letter-spacing:.3px}.sr-cal-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;font-size:.75rem;color:var(--text-secondary)}.sr-cal-legend-item{display:flex;align-items:center;gap:.35rem}.sr-cal-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sr-cal-legend-x{font-size:.7rem;color:var(--text-secondary);opacity:.5}.sr-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.sr-cal-dow{text-align:center;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);padding:.4rem 0}.sr-cal-cell{min-height:80px;border-radius:8px;padding:6px 7px;position:relative;border:1px solid var(--border-color);background:#ffffff06;display:flex;flex-direction:column;gap:2px;transition:border-color .15s,background .15s}.sr-cal-blank{background:transparent;border-color:transparent;min-height:80px}.sr-cal-day-num{font-size:.82rem;font-weight:700;color:var(--text-secondary);line-height:1;margin-bottom:2px}.sr-cal-today .sr-cal-day-num{background:var(--primary-color);color:#000;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem}.sr-cal-has-report{cursor:pointer}.sr-cal-has-report:hover{border-color:#2bd6e859;background:#2bd6e80f}.sr-cal-approved{border-left:2px solid var(--success-color)!important}.sr-cal-submitted{border-left:2px solid #f59e0b!important}.sr-cal-draft{border-left:2px solid rgba(255,255,255,.2)!important}.sr-cal-rejected{border-left:2px solid var(--danger-color)!important}.sr-cal-status-dot{width:6px;height:6px;border-radius:50%;position:absolute;top:7px;right:7px}.sr-cal-report-label{display:flex;align-items:center;gap:3px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-top:1px}.sr-cal-meta{font-size:.65rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-cal-actions{display:flex;gap:3px;margin-top:auto;padding-top:4px}.sr-cal-btn{background:#ffffff12;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;padding:2px 4px;display:flex;align-items:center;transition:background .12s,color .12s}.sr-cal-btn:hover:not(:disabled){background:#2bd6e826;color:var(--primary-color)}.sr-cal-btn:disabled{opacity:.3;cursor:not-allowed}.sr-cal-empty{opacity:.55}.sr-cal-weekend{opacity:.4}.sr-cal-no-work{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:2px}.sr-cal-x-mark{font-size:.85rem;color:var(--text-secondary);opacity:.45;font-weight:700}.sr-cal-no-label{font-size:.55rem;color:var(--text-secondary);opacity:.5;text-transform:uppercase;letter-spacing:.4px}.sr-cal-add-btn{background:#2bd6e812;border:1px dashed rgba(43,214,232,.2);border-radius:4px;color:#2bd6e873;cursor:pointer;padding:2px 5px;font-size:.7rem;display:flex;align-items:center;margin-top:auto;transition:background .12s,color .12s,border-color .12s}.sr-cal-add-btn:hover{background:#2bd6e824;color:var(--primary-color);border-color:#2bd6e866}@media (max-width: 600px){.sr-cal-cell{min-height:60px;padding:4px 5px}.sr-cal-report-label,.sr-cal-meta,.sr-cal-no-label{display:none}.sr-cal-actions{gap:2px}.sr-cal-btn{padding:1px 3px}}.report-status-banner{display:flex;align-items:center;justify-content:space-between;border:1px solid;border-radius:10px;padding:.65rem 1rem;margin-bottom:1rem;font-size:.88rem}@media print{.report-status-banner{display:none}.rc-status-ribbon{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.project-selector{display:flex;align-items:center;gap:.45rem;width:100%;background:#00f0ff0d;border:1px solid rgba(0,240,255,.15);border-radius:8px;padding:.5rem .75rem;margin-bottom:1.2rem;cursor:pointer;color:var(--text-secondary);font-size:.8rem;transition:all .2s;text-align:left}.project-selector:hover{background:#00f0ff1a;border-color:#00f0ff4d;color:#fff}.proj-sel-name{flex:1;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-proj-chip{display:flex;align-items:center;gap:.35rem;background:#00f0ff14;border:1px solid rgba(0,240,255,.2);border-radius:20px;padding:.3rem .75rem;font-size:.78rem;color:var(--primary-color);cursor:pointer;transition:all .2s}.header-proj-chip:hover{background:#00f0ff24}.proj-context-banner{display:flex;align-items:center;gap:.5rem;background:#00f0ff0f;border-left:3px solid var(--primary-color);border-radius:0 8px 8px 0;padding:.5rem 1rem;font-size:.85rem;color:var(--primary-color);font-weight:600;margin-bottom:1rem}.proj-ctx-loc{color:var(--text-secondary);font-weight:400}.proj-pick-btn{display:flex;align-items:center;justify-content:space-between;width:100%;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.75rem 1rem;cursor:pointer;color:#fff;transition:all .2s;text-align:left}.proj-pick-btn:hover{background:#00f0ff14;border-color:#00f0ff33}.proj-pick-btn.active{background:#00f0ff1a;border-color:var(--primary-color);box-shadow:0 0 0 1px #00f0ff4d}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.2rem}.project-card{position:relative;background:var(--surface-color);border:var(--glass-border);border-radius:18px;padding:0;display:flex;flex-direction:column;overflow:hidden;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));opacity:.7}.project-card:hover{transform:translateY(-3px);border-color:#2bd6e838;box-shadow:0 12px 40px #00000073,0 0 0 1px #2bd6e81a}.project-card.project-active{border-color:#2bd6e873;box-shadow:0 0 0 1px #2bd6e84d,0 8px 32px #2bd6e81a}.pc-head{padding:1.3rem 1.4rem .9rem;border-bottom:1px solid rgba(255,255,255,.05)}.pc-stats{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid rgba(255,255,255,.05)}.pc-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:.8rem .5rem;border-right:1px solid rgba(255,255,255,.05);text-align:center}.pc-stat:last-child{border-right:none}.pc-stat-val{font-family:JetBrains Mono,monospace;font-weight:700;font-size:1rem;color:#fff}.pc-stat-lbl{font-size:.68rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.pc-footer{display:flex;align-items:center;gap:.4rem;padding:.7rem 1.1rem;background:#0000001f}.proj-active-ribbon{position:absolute;top:0;right:0;background:var(--primary-color);color:#000;font-size:.7rem;font-weight:700;padding:.2rem .6rem;border-radius:0 14px 0 8px;display:flex;align-items:center;gap:.3rem}.proj-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.proj-name{font-size:1.1rem;font-weight:700;color:#fff}.proj-location{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-secondary);margin-top:.2rem}.proj-status-badge{display:flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;white-space:nowrap;flex-shrink:0}.proj-description{font-size:.85rem;color:var(--text-secondary);line-height:1.5}.proj-meta-row{display:flex;flex-wrap:wrap;gap:.6rem;font-size:.78rem;color:var(--text-secondary)}.proj-meta-row strong{color:#ccc}.proj-stats-row{display:flex;gap:1rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.06)}.proj-stat{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-secondary)}.proj-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.06)}.exp-filter-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.8rem;margin-bottom:.5rem}.exp-add-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;background:#00f0ff0a;border:1px solid rgba(0,240,255,.12);border-radius:10px;padding:.75rem;margin-bottom:1rem}.exp-cat-chip{background:#00f0ff14;border:1px solid rgba(0,240,255,.15);border-radius:12px;padding:.15rem .6rem;font-size:.75rem;color:var(--primary-color);white-space:nowrap}.tab-badge{background:var(--primary-color);color:#000;font-size:.65rem;font-weight:800;border-radius:10px;padding:.1rem .45rem;margin-left:.3rem}@media print{.proj-context-banner{border-left-color:#1a6bc4!important;color:#1a6bc4!important}.exp-cat-chip{background:#eef!important;color:#334!important;border-color:#ccd!important}.project-card{border-color:#ccc!important;box-shadow:none!important;page-break-inside:avoid}.proj-active-ribbon{background:#1a6bc4!important;color:#fff!important}}.role-finance{background:#f59e0b1f;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.btn-warning{background:linear-gradient(135deg,#d97706,#b45309);color:#fff;border:none;padding:.7rem 1.4rem;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s}.btn-warning:hover{filter:brightness(1.12);transform:translateY(-1px)}.btn-warning:disabled{opacity:.4;cursor:not-allowed;transform:none}.nav-badge{background:var(--danger-color);color:#fff;font-size:.65rem;font-weight:800;border-radius:10px;padding:.1rem .45rem;margin-left:auto;min-width:18px;text-align:center}.approval-badge{background:var(--danger-color);color:#fff;font-size:.72rem;font-weight:800;border-radius:12px;padding:.15rem .6rem;margin-left:.4rem}.approval-card{background:var(--surface-color);border:var(--glass-border);border-radius:12px;padding:1.2rem 1.4rem;display:flex;flex-direction:column;gap:.75rem;transition:all .25s}.approval-card.pending{border-left:3px solid var(--warning-color)}.approval-card.approved{border-left:3px solid var(--success-color);opacity:.8}.approval-card.rejected{border-left:3px solid var(--danger-color);opacity:.75}.approval-card-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.approval-type{font-weight:700;font-size:.95rem}.approval-status-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;padding:.2rem .65rem;border-radius:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.approval-status-badge[data-status=pending]{color:var(--warning-color);border-color:#f59e0b4d}.approval-status-badge[data-status=approved]{color:var(--success-color);border-color:#00ff664d}.approval-status-badge[data-status=rejected]{color:var(--danger-color);border-color:#ff3c3c4d}.approval-diff{background:#0003;border-radius:8px;padding:.6rem .9rem;overflow-x:auto}.approval-diff table{border-collapse:collapse;min-width:100%}.approval-diff th,.approval-diff td{padding:3px 8px;vertical-align:middle}.approval-reason{display:flex;align-items:flex-start;gap:.5rem;background:#f59e0b0f;border:1px solid rgba(245,158,11,.2);border-radius:8px;padding:.5rem .8rem;font-size:.83rem;color:var(--text-secondary)}.assign-badge{font-size:.72rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}@media print{.approval-card{border-color:#ccc!important;box-shadow:none!important}.approval-badge,.nav-badge{background:#c0152e!important}.btn-warning{background:#b45309!important}}.inv-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.inv-item-card{position:relative;background:var(--surface-color);border:var(--glass-border);border-radius:12px;padding:1rem 1rem .85rem;display:flex;flex-direction:column;gap:.5rem;overflow:hidden;transition:all .2s}.inv-item-card:hover{transform:translateY(-2px);box-shadow:0 6px 24px #00000059}.inv-item-cat-bar{position:absolute;top:0;left:0;right:0;height:3px}.inv-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.4rem;padding-top:.3rem}.inv-item-name{font-size:.95rem;font-weight:700;color:#fff;line-height:1.3}.inv-item-cat{font-size:.72rem;color:var(--text-secondary);margin-top:.15rem}.inv-item-qty{display:flex;align-items:baseline;gap:.3rem}.inv-qty-num{font-size:2rem;font-weight:800;color:var(--primary-color);font-family:JetBrains Mono,monospace;line-height:1}.inv-qty-unit{font-size:.8rem;color:var(--text-secondary)}.inv-item-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.inv-condition{display:flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600}.inv-item-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.06);margin-top:auto}.inv-value{font-size:.85rem;font-weight:700;color:var(--success-color);font-family:JetBrains Mono,monospace}.inv-cat-chip{display:inline-flex;align-items:center;gap:.35rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:.3rem .8rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:all .2s}.inv-cat-chip:hover{background:#ffffff14;color:#fff}.inv-cat-chip.active{background:#00f0ff1a;border-color:var(--primary-color);color:#fff}.inv-cat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.inv-cat-dot-sm{width:8px;height:8px;border-radius:50%;flex-shrink:0}.inv-cat-row{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.88rem}@media print{.inv-items-grid{grid-template-columns:repeat(3,1fr)}.inv-item-card{border-color:#ccc!important;box-shadow:none!important;break-inside:avoid}.inv-cat-chip{display:none}}.toast-stack{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.6rem;max-width:min(380px,calc(100vw - 2rem));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;background:var(--surface-color, #15161c);color:#fff;border:1px solid rgba(255,255,255,.1);border-left-width:4px;border-radius:var(--radius, 10px);padding:.8rem .9rem;box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .4));animation:toastIn .22s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.toast-success{border-left-color:var(--success-color)}.toast-info{border-left-color:var(--primary-color)}.toast-warning{border-left-color:var(--warning-color)}.toast-error{border-left-color:var(--danger-color)}.toast-success .toast-icon{color:var(--success-color)}.toast-info .toast-icon{color:var(--primary-color)}.toast-warning .toast-icon{color:var(--warning-color)}.toast-error .toast-icon{color:var(--danger-color)}.toast-icon{flex-shrink:0;margin-top:1px}.toast-body{flex:1;min-width:0}.toast-title{font-weight:700;font-size:.88rem;margin-bottom:.1rem}.toast-msg{font-size:.84rem;color:var(--text-secondary, #aeb4c2);line-height:1.4;word-break:break-word}.toast-close{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:2px;border-radius:4px;flex-shrink:0}.toast-close:hover{color:#fff;background:#ffffff14}.nav-item:focus-visible,.btn:focus-visible,.icon-btn:focus-visible,.filter-tab:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (prefers-reduced-motion: reduce){.toast{animation:none}}@media print{.toast-stack{display:none!important}}.update-banner{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%);z-index:9998;display:flex;align-items:flex-start;gap:.7rem;background:var(--surface-color, #15161c);color:#fff;border:1px solid var(--primary-color);border-radius:14px;padding:.8rem .8rem .8rem 1.1rem;box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .45));font-size:.88rem;max-width:min(420px,calc(100vw - 2rem));animation:toastIn .25s ease-out}.update-banner>svg{flex-shrink:0;margin-top:2px}.update-banner--latest{border-color:var(--success-color, #00ff66)}.update-banner--latest>svg{color:var(--success-color, #00ff66)}.update-banner-body{display:flex;flex-direction:column;gap:2px;min-width:0}.update-banner-date{font-size:.76rem;color:var(--text-secondary, #9aa1ad)}.update-banner-notes{font-size:.8rem;color:#e6e8ec;white-space:pre-wrap;margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.1);max-height:160px;overflow-y:auto}.update-banner-btn{background:var(--primary-color);color:#06121a;border:none;font-weight:700;padding:.4rem .9rem;border-radius:999px;cursor:pointer;white-space:nowrap}.update-banner-btn:hover{filter:brightness(1.08)}.note-chip{font-size:.74rem;padding:3px 9px;border-radius:999px;cursor:pointer;background:#ffffff0d;color:var(--text-secondary, #9aa1ad);border:1px solid var(--border-color, rgba(255, 255, 255, .12));white-space:nowrap}.note-chip:hover{background:#ffffff1a;color:#fff;border-color:var(--primary-color)}.stock-tracker tr.stk-editing>td{background:#a855f714;vertical-align:middle;padding:6px 8px}.stock-tracker tr.stk-editing .form-input{padding:4px 6px;font-size:.82rem}.stk-delivery-form{border:1px solid var(--border-color, rgba(255, 255, 255, .12));border-radius:var(--radius, 10px);padding:.9rem;background:#ffffff05}.stk-delivery-tag{display:inline-block;font-size:.64rem;text-transform:uppercase;letter-spacing:.5px;padding:1px 6px;margin-left:6px;border-radius:999px;vertical-align:1px;background:#a855f72e;color:#c79bff;border:1px solid rgba(168,85,247,.4)}.update-banner-x{background:none;border:none;color:var(--text-secondary, #9aa1ad);cursor:pointer;padding:2px;display:flex}.update-banner-x:hover{color:#fff}@media (prefers-reduced-motion: reduce){.update-banner{animation:none}}@media print{.update-banner{display:none!important}}.sync-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-color, rgba(255, 255, 255, .12));background:#ffffff0a;color:var(--text-secondary, #9aa1ad);padding:.32rem .6rem;border-radius:999px;font-size:.76rem;font-weight:600;cursor:pointer}.sync-chip:hover:not(:disabled){color:#fff;border-color:var(--primary-color)}.sync-chip:disabled{cursor:default}.sync-chip.synced{color:var(--success-color);border-color:#2ee6864d}.sync-chip.syncing{color:var(--primary-color);border-color:#2bd6e859}.sync-chip.offline{color:var(--warning-color);border-color:#f5b53d59}.sync-chip-label{white-space:nowrap}.sync-chip .spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 560px){.sync-chip-label{display:none}}.imp-proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.7rem}.imp-proj-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;background:#ffffff08;border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:.8rem .9rem;cursor:pointer;text-align:left;transition:all .18s;min-height:90px}.imp-proj-card:hover{border-color:#2bd6e866;background:#2bd6e80d}.imp-proj-card.selected{border-color:var(--primary-color);background:#2bd6e814;box-shadow:0 0 0 1px #2bd6e840}.imp-proj-name{font-weight:700;font-size:.9rem;color:#fff;line-height:1.3}.imp-proj-site{font-size:.76rem;color:var(--text-secondary)}.imp-change-proj{display:inline-flex;align-items:center;gap:.3rem;background:#2bd6e814;border:1px solid rgba(43,214,232,.25);border-radius:999px;padding:.22rem .7rem;font-size:.76rem;color:var(--primary-color);cursor:pointer;transition:background .15s;white-space:nowrap}.imp-change-proj:hover{background:#2bd6e826}.imp-proj-badge{display:inline-flex;align-items:center;gap:.3rem;background:#2bd6e81a;border:1px solid rgba(43,214,232,.3);border-radius:999px;padding:.18rem .6rem;font-size:.74rem;color:var(--primary-color);font-weight:600;white-space:nowrap}.imp-mode-tabs{display:flex;gap:.4rem;margin-bottom:.2rem}.imp-mode-tab{display:inline-flex;align-items:center;gap:.35rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.38rem .8rem;font-size:.82rem;color:var(--text-secondary);cursor:pointer;transition:all .17s}.imp-mode-tab:hover{color:#fff;border-color:#fff3}.imp-mode-tab.active{background:#2bd6e81a;border-color:var(--primary-color);color:var(--primary-color);font-weight:600}.imp-paste-area{width:100%;resize:vertical;font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.6;min-height:160px}.imp-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;border:2px dashed rgba(43,214,232,.3);border-radius:12px;padding:2rem 1rem;margin-top:.9rem;cursor:pointer;transition:all .22s;color:var(--text-secondary);font-size:.9rem;text-align:center}.imp-dropzone:hover{border-color:var(--primary-color);background:#2bd6e80d;color:#fff}.imp-dropzone.imp-loading{cursor:default;border-style:solid;border-color:#2bd6e866}.imp-warning{display:flex;align-items:center;gap:.5rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:8px;padding:.5rem .8rem;font-size:.83rem;color:#f5b53d}.imp-preview{display:flex;flex-direction:column;gap:0;background:var(--surface-color);border:var(--glass-border);border-radius:var(--radius);overflow:hidden}.imp-preview-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid rgba(255,255,255,.07);background:#ffffff05}.imp-warnings-box{display:flex;gap:.6rem;background:#f59e0b0f;border-bottom:1px solid rgba(245,158,11,.15);padding:.65rem 1rem;color:var(--text-secondary)}.imp-section-wrap{border-bottom:1px solid rgba(255,255,255,.06)}.imp-section-title{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-left:3px solid transparent;font-weight:700;font-size:.86rem;background:#ffffff05}.imp-section-count{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--text-secondary);font-weight:400}.imp-toggle-all{background:none;border:none;cursor:pointer;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;color:var(--text-secondary);transition:color .15s}.imp-toggle-all:hover{color:var(--primary-color)}.imp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 0 .5rem}.imp-table{width:100%;min-width:460px;border-collapse:collapse;font-size:.84rem}.imp-table th{padding:.4rem .7rem;text-align:left;color:var(--text-secondary);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.06)}.imp-table td{padding:.45rem .7rem;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.imp-table tr:last-child td{border-bottom:none}.imp-table tr.imp-row-skip td{opacity:.35;text-decoration:line-through}.imp-confirm-bar{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.85rem 1rem;border-top:1px solid rgba(255,255,255,.08);background:#00000026;position:sticky;bottom:0}.imp-table tr.imp-row-dup td{background:#ff4d620f}.imp-table tr.imp-row-dup.imp-row-skip td{background:transparent}.imp-dup-badge{display:inline-flex;align-items:center;gap:3px;background:#ff4d6226;border:1px solid rgba(255,77,98,.35);color:var(--danger-color);border-radius:999px;padding:.1rem .5rem;font-size:.68rem;font-weight:700;white-space:nowrap}.imp-dup-chip{display:inline-flex;align-items:center;gap:3px;background:#ff4d621f;border:1px solid rgba(255,77,98,.3);color:var(--danger-color);border-radius:999px;padding:.1rem .5rem;font-size:.7rem;font-weight:700;margin-left:.4rem}.imp-dup-banner{display:flex;align-items:flex-start;gap:.6rem;background:#ff4d6212;border-bottom:1px solid rgba(255,77,98,.2);padding:.7rem 1rem;font-size:.83rem;color:var(--text-primary);line-height:1.5}.imp-dup-warn-active{display:flex;align-items:center;gap:.5rem;background:#f59e0b14;border-bottom:1px solid rgba(245,158,11,.25);padding:.55rem 1rem;font-size:.82rem;color:#f5b53d}.imp-spin{animation:spin 1s linear infinite}@media (max-width: 600px){.imp-confirm-bar{flex-direction:column;align-items:stretch}.imp-confirm-bar>div{display:flex;gap:.6rem}.imp-confirm-bar .btn{flex:1}}@keyframes mesh-drift-a{0%,to{transform:translate(0) scale(1)}33%{transform:translate(60px,-40px) scale(1.08)}66%{transform:translate(-40px,30px) scale(.96)}}@keyframes mesh-drift-b{0%,to{transform:translate(0) scale(1)}40%{transform:translate(-80px,50px) scale(1.06)}75%{transform:translate(50px,-30px) scale(.98)}}@keyframes mesh-drift-c{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,60px) scale(1.04)}}body:before,body:after{content:"";position:fixed;border-radius:50%;pointer-events:none;z-index:0;filter:blur(120px)}body:before{width:900px;height:600px;top:-200px;right:-150px;background:radial-gradient(ellipse,rgba(43,214,232,.055) 0%,transparent 70%);animation:mesh-drift-a 22s ease-in-out infinite}body:after{width:700px;height:500px;bottom:-180px;left:-100px;background:radial-gradient(ellipse,rgba(124,92,255,.048) 0%,transparent 70%);animation:mesh-drift-b 28s ease-in-out infinite}.app-container:before{content:"";position:fixed;width:500px;height:500px;top:40%;left:40%;border-radius:50%;background:radial-gradient(ellipse,rgba(0,255,102,.022) 0%,transparent 70%);filter:blur(100px);pointer-events:none;z-index:0;animation:mesh-drift-c 18s ease-in-out infinite}.sidebar-collapse-btn{display:none;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s;margin:-.5rem 0 .8rem auto;flex-shrink:0}.sidebar-collapse-btn:hover{background:#ffffff12;color:#fff;border-color:#ffffff2e}@media (min-width: 769px){.sidebar-collapse-btn{display:flex}.sidebar-collapsed{width:68px!important;padding:1.5rem .75rem;overflow:visible}.sidebar-collapsed .sidebar-label,.sidebar-collapsed .user-meta,.sidebar-collapsed .proj-sel-name,.sidebar-collapsed .role-badge span,.sidebar-collapsed .brand-logo{display:none}.sidebar-collapsed .brand-icon-collapsed{display:block}.sidebar-collapsed .brand{justify-content:center}.sidebar-collapsed .user-card{justify-content:center;padding:.5rem}.sidebar-collapsed .role-badge{justify-content:center;padding:.4rem}.sidebar-collapsed .project-selector{justify-content:center;padding:.55rem}.sidebar-collapsed .nav-item{justify-content:center;padding:.85rem 0}.sidebar-collapsed .nav-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;font-size:.6rem;padding:0 3px}.sidebar-collapsed .nav-item{position:relative}.sidebar-collapsed .sidebar-collapse-btn{margin:-.5rem auto .8rem}.sidebar{transition:width .28s cubic-bezier(.4,0,.2,1),padding .28s cubic-bezier(.4,0,.2,1)}.sidebar-label{transition:opacity .18s ease}.sidebar-collapsed .sidebar-label{opacity:0;width:0;overflow:hidden}}@keyframes nav-glow-pulse{0%,to{box-shadow:-8px 0 18px -8px var(--primary-color)}50%{box-shadow:-8px 0 28px -4px var(--primary-color)}}.nav-item.active{animation:nav-glow-pulse 2.8s ease-in-out infinite}.card:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(43,214,232,.5),transparent);opacity:.7;transition:opacity .25s ease}.card:hover:after{opacity:1}.card.success:after{background:linear-gradient(90deg,transparent,rgba(46,230,134,.55),transparent)}.card.danger:after{background:linear-gradient(90deg,transparent,rgba(255,77,98,.55),transparent)}.card.warning:after{background:linear-gradient(90deg,transparent,rgba(245,181,61,.55),transparent)}.card:hover{box-shadow:var(--shadow-lg),0 0 0 1px #2bd6e81a,inset 0 1px #2bd6e80f}@keyframes kpi-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.card .value,.fin-kpi-value{animation:kpi-reveal .55s cubic-bezier(.16,1,.3,1) both}.fin-kpi:nth-child(1) .fin-kpi-value{animation-delay:.05s}.fin-kpi:nth-child(2) .fin-kpi-value{animation-delay:.12s}.fin-kpi:nth-child(3) .fin-kpi-value{animation-delay:.19s}.fin-kpi:nth-child(4) .fin-kpi-value{animation-delay:.26s}.dashboard-grid .card:nth-child(1) .value{animation-delay:.05s}.dashboard-grid .card:nth-child(2) .value{animation-delay:.12s}.dashboard-grid .card:nth-child(3) .value{animation-delay:.19s}.dashboard-grid .card:nth-child(4) .value{animation-delay:.26s}.report-stat:nth-child(1) .rstat-value{animation:kpi-reveal .5s .05s both cubic-bezier(.16,1,.3,1)}.report-stat:nth-child(2) .rstat-value{animation:kpi-reveal .5s .12s both cubic-bezier(.16,1,.3,1)}.report-stat:nth-child(3) .rstat-value{animation:kpi-reveal .5s .19s both cubic-bezier(.16,1,.3,1)}.report-stat:nth-child(4) .rstat-value{animation:kpi-reveal .5s .26s both cubic-bezier(.16,1,.3,1)}.btn{position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--rx, 50%) var(--ry, 50%),rgba(255,255,255,.22) 0%,transparent 60%);opacity:0;transition:opacity .4s ease;pointer-events:none}.btn:active:after{opacity:1;transition:opacity 0s}@keyframes tab-slide-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:tab-slide-in .38s cubic-bezier(.16,1,.3,1)}tbody tr{transition:background .15s ease,box-shadow .15s ease}tbody tr:hover td{background:#2bd6e808;box-shadow:inset 3px 0 #2bd6e82e}.table-container table thead th{position:sticky;top:0;z-index:2;background:var(--surface-solid);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2bd6e838;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#2bd6e870}.sidebar::-webkit-scrollbar{width:3px}.icon-btn{transition:color .18s,background .18s,border-color .18s,transform .18s,box-shadow .18s}.icon-btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px #00000040}.icon-btn:active{transform:translateY(0);box-shadow:none}.filter-tab{position:relative;overflow:hidden}.filter-tab:after{content:"";position:absolute;bottom:0;left:50%;right:50%;height:2px;background:var(--primary-color);border-radius:2px;transition:left .22s ease,right .22s ease}.filter-tab.active:after{left:12%;right:12%}.nav-item{position:relative}.nav-item svg{transition:transform .2s ease}.nav-item:hover svg{transform:translate(2px)}.nav-item.active svg{transform:translate(3px);color:var(--primary-color)}.attendance-row{transition:border-color .2s ease,background .2s ease,transform .2s ease}.attendance-row:hover{transform:translate(3px)}.report-card{transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease}.report-card:hover{box-shadow:-4px 0 0 var(--primary-color),var(--shadow-md);transform:translate(4px)}.worker-card{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.worker-card:hover{box-shadow:0 0 0 1px #2bd6e840,0 8px 30px #00000059}@media print{body:before,body:after,.app-container:before{display:none!important}.card:after{display:none!important}.animate-fade-in,.nav-item.active{animation:none!important}.btn:after{display:none!important}.filter-tab:after{display:none!important}tbody tr:hover td{box-shadow:none!important}.ds-backdrop{display:none!important}}@keyframes sheet-pop-in{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}.ds-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#000000bf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:backdrop-fade .18s ease;overflow:hidden}.ds-sheet{width:100%;height:92vh;max-height:92vh;background:#0e111a;border:1px solid rgba(43,214,232,.16);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;animation:sheet-pop-in .25s cubic-bezier(.16,1,.3,1);box-shadow:0 32px 100px #000000a6,0 0 0 1px #2bd6e812;outline:none}.ds-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.6rem;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0;background:#0e111afa;position:sticky;top:0;z-index:2}.ds-header-left{display:flex;align-items:center;gap:.85rem;min-width:0}.ds-header-icon{width:40px;height:40px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#2bd6e81a;color:var(--primary-color);border:1px solid rgba(43,214,232,.2)}.ds-title{font-size:1.15rem;font-weight:800;color:#fff;margin:0;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-subtitle{font-size:.78rem;color:var(--text-secondary);margin:1px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ds-close{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.09);border-radius:9px;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.ds-close:hover{background:#ff4d621f;color:var(--danger-color);border-color:#ff4d624d}.ds-body{flex:1;overflow-y:auto;padding:1.2rem 1.6rem 1.6rem;scrollbar-width:thin;scrollbar-color:rgba(43,214,232,.25) transparent}.ds-body::-webkit-scrollbar{width:5px}.ds-body::-webkit-scrollbar-track{background:transparent}.ds-body::-webkit-scrollbar-thumb{background:#2bd6e840;border-radius:999px}@media (max-width: 768px){.ds-backdrop{padding:0;align-items:flex-end}.ds-sheet{height:96dvh;max-height:96dvh;border-radius:20px 20px 0 0;border-left:none;border-right:none;border-bottom:none;animation:sheet-slide-up .28s cubic-bezier(.16,1,.3,1)}.ds-header{padding:.75rem 1rem}.ds-body{padding:1rem}.ds-footer{padding:.75rem 1rem}.ds-title{font-size:1.05rem}}@keyframes sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.kpi-card{position:relative;background:var(--surface-color);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:var(--glass-border);border-radius:16px;padding:1.4rem 1.5rem 1.2rem;overflow:hidden;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;display:flex;flex-direction:column;gap:.2rem;box-shadow:var(--shadow-md)}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--kpi-accent, var(--primary-color));opacity:.8}.kpi-card:after{content:"";position:absolute;top:0;left:0;right:0;height:60px;background:linear-gradient(180deg,color-mix(in srgb,var(--kpi-accent, var(--primary-color)) 8%,transparent) 0%,transparent 100%);pointer-events:none}.kpi-card:hover{transform:translateY(-4px);border-color:#ffffff26;box-shadow:var(--shadow-lg),0 0 0 1px #2bd6e81a}.kpi-card:active{transform:translateY(-1px)}.kpi-card.cyan{--kpi-accent: #2bd6e8}.kpi-card.green{--kpi-accent: #2ee686}.kpi-card.amber{--kpi-accent: #f5b53d}.kpi-card.red{--kpi-accent: #ff4d62}.kpi-card.purple{--kpi-accent: #a855f7}.kpi-card.blue{--kpi-accent: #38bdf8}.kpi-icon{position:absolute;top:1.1rem;right:1.2rem;width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--kpi-accent, var(--primary-color)) 14%,transparent);color:var(--kpi-accent, var(--primary-color));border:1px solid color-mix(in srgb,var(--kpi-accent, var(--primary-color)) 28%,transparent)}.kpi-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:.3rem;padding-right:52px}.kpi-value{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:800;color:var(--text-primary);letter-spacing:-.5px;line-height:1.1;animation:kpi-reveal .55s cubic-bezier(.16,1,.3,1) both}.kpi-value .kpi-unit{font-size:.9rem;font-weight:400;color:var(--text-secondary);margin-left:3px}.kpi-trend{display:flex;align-items:center;gap:.3rem;font-size:.76rem;font-weight:600;margin-top:.35rem;color:var(--text-secondary)}.kpi-trend.up{color:var(--success-color)}.kpi-trend.down{color:var(--danger-color)}.kpi-trend.neutral{color:var(--text-secondary)}.kpi-drill{font-size:.7rem;color:var(--kpi-accent, var(--primary-color));opacity:0;transition:opacity .18s;margin-top:.4rem;display:flex;align-items:center;gap:3px}.kpi-card:hover .kpi-drill{opacity:1}.user-mgmt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.user-mgmt-card{background:var(--surface-color);border:var(--glass-border);border-radius:16px;padding:0;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer}.user-mgmt-card:hover{transform:translateY(-2px);border-color:#2bd6e840;box-shadow:var(--shadow-lg)}.umc-top{display:flex;align-items:center;gap:1rem;padding:1.2rem 1.3rem 1rem;border-bottom:1px solid rgba(255,255,255,.05)}.umc-avatar{width:48px;height:48px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;letter-spacing:-.5px}.umc-avatar.role-super_admin{background:linear-gradient(135deg,#7c5cff,#a855f7);color:#fff}.umc-avatar.role-admin{background:linear-gradient(135deg,#a855f7,#c084fc);color:#fff}.umc-avatar.role-finance{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#1a1000}.umc-avatar.role-manager{background:linear-gradient(135deg,#2bd6e8,#0ea5e9);color:#00131a}.umc-avatar.role-site_manager{background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#00131a}.umc-avatar.role-site_coordinator{background:linear-gradient(135deg,#06b6d4,#22d3ee);color:#00131a}.umc-avatar.role-site_engineer{background:linear-gradient(135deg,#0891b2,#38bdf8);color:#00131a}.umc-avatar.role-quantity_surveyor{background:linear-gradient(135deg,#0e7490,#22d3ee);color:#00131a}.umc-avatar.role-accountant{background:linear-gradient(135deg,#ea580c,#fb923c);color:#fff}.umc-info{flex:1;min-width:0}.umc-name{font-weight:700;color:#fff;font-size:.97rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.umc-title{font-size:.77rem;color:var(--text-secondary);margin-top:1px}.umc-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-left:auto}.umc-status-dot.active{background:var(--success-color);box-shadow:0 0 6px var(--success-color)}.umc-status-dot.inactive{background:#fff3}.umc-meta{display:flex;gap:.5rem;flex-wrap:wrap;padding:.7rem 1.3rem}.umc-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}.umc-chip.role-super_admin{background:#7c5cff26;color:#a855f7;border:1px solid rgba(124,92,255,.3)}.umc-chip.role-admin{background:#a855f71f;color:#c084fc;border:1px solid rgba(168,85,247,.25)}.umc-chip.role-finance{background:#f59e0b1f;color:#f59e0b;border:1px solid rgba(245,158,11,.25)}.umc-chip.role-manager{background:#2bd6e81a;color:var(--primary-color);border:1px solid rgba(43,214,232,.22)}.umc-chip.role-site_manager{background:#0ea5e91a;color:#38bdf8;border:1px solid rgba(14,165,233,.22)}.umc-chip.role-site_coordinator{background:#06b6d41a;color:#22d3ee;border:1px solid rgba(6,182,212,.22)}.umc-chip.role-site_engineer{background:#0891b21a;color:#38bdf8;border:1px solid rgba(8,145,178,.22)}.umc-chip.role-quantity_surveyor{background:#0e74901a;color:#22d3ee;border:1px solid rgba(14,116,144,.22)}.umc-chip.role-accountant{background:#ea580c1a;color:#fb923c;border:1px solid rgba(234,88,12,.22)}.umc-footer{display:flex;align-items:center;gap:.4rem;padding:.65rem 1.3rem;border-top:1px solid rgba(255,255,255,.04);background:#0000001f}.umc-footer .icon-btn{width:32px;height:32px;border-radius:8px;font-size:.82rem}.perm-module{background:#ffffff06;border:1px solid rgba(255,255,255,.07);border-radius:12px;margin-bottom:.75rem;overflow:hidden}.perm-module-hdr{display:flex;align-items:center;gap:.7rem;padding:.85rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.06);background:#ffffff05}.perm-module-name{font-weight:700;color:#fff;font-size:.9rem;flex:1}.perm-toggle{position:relative;width:42px;height:24px;flex-shrink:0}.perm-toggle input{opacity:0;width:0;height:0;position:absolute}.perm-toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff1a;border-radius:12px;cursor:pointer;transition:background .2s;border:1px solid rgba(255,255,255,.12)}.perm-toggle input:checked+.perm-toggle-track{background:var(--primary-color);border-color:var(--primary-color)}.perm-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.perm-toggle input:checked+.perm-toggle-track:after{transform:translate(18px)}.perm-caps{padding:.75rem 1.1rem;display:flex;flex-direction:column;gap:.5rem}.perm-cap-row{display:flex;align-items:center;gap:.75rem;font-size:.85rem}.perm-cap-label{flex:1;color:var(--text-secondary)}.perm-cap-select{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.35rem .65rem;color:#fff;font-family:inherit;font-size:.82rem;cursor:pointer;transition:border-color .15s}.perm-cap-select:focus{outline:none;border-color:var(--primary-color)}.role-explain-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.6rem}.role-explain-chip{display:flex;flex-direction:column;gap:2px;padding:.6rem .75rem;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;font-size:.76rem;cursor:pointer;transition:border-color .15s,background .15s}.role-explain-chip.selected{border-color:var(--primary-color);background:#2bd6e814}.role-explain-chip strong{color:#fff;font-size:.8rem}.role-explain-chip span{color:var(--text-secondary);line-height:1.4}.invoice-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.invoice-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg),0 0 0 1px #2bd6e81f;border-color:#2bd6e833!important}.global-loader-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0f1ed9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;z-index:999999;animation:backdrop-fade .3s ease-out}.global-loader-container{background:linear-gradient(135deg,#1a2035e6,#0d1121f2);border:1px solid rgba(255,215,0,.15);border-radius:20px;padding:2.5rem 3rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem;box-shadow:0 20px 50px #00000080,inset 0 1px #ffffff0d;max-width:320px;text-align:center}.pyramid-loader-wrapper{position:relative;width:100px;height:100px;display:flex;justify-content:center;align-items:center}.pyramid-loader-ring{position:absolute;width:100%;height:100%;border:3px solid transparent;border-top-color:var(--primary-color, #2bd6e8);border-bottom-color:var(--warning-color, #f5b53d);border-radius:50%;animation:spin 1.5s linear infinite}.pyramid-loader-logo{width:60px;height:60px;object-fit:contain;animation:pulseScale 2s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,215,0,.3))}.global-loader-message{color:#fff;font-size:.95rem;font-weight:500;letter-spacing:.05em;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.5);animation:pulseText 1.5s ease-in-out infinite alternate}.modal-overlay.warning .modal{border-top:4px solid var(--warning-color)}@keyframes pulseScale{0%,to{transform:scale(.92);opacity:.85}50%{transform:scale(1.08);opacity:1}}@keyframes pulseText{0%{opacity:.7}to{opacity:1}}
