:root{--bg-main: #f8fafc;--bg-card: #ffffff;--border: #e2e8f0;--border-strong: #cbd5e1;--text-main: #0f172a;--text-muted: #64748b;--text-subtle: #94a3b8;--pastel-lavender-bg: #e0e7ff;--pastel-lavender-border: #c7d2fe;--pastel-lavender-text: #3730a3;--pastel-mint-bg: #d1fae5;--pastel-mint-border: #a7f3d0;--pastel-mint-text: #065f46;--pastel-rose-bg: #ffe4e6;--pastel-rose-border: #fecdd3;--pastel-rose-text: #9f1239;--pastel-sky-bg: #e0f2fe;--pastel-sky-border: #bae6fd;--pastel-sky-text: #0369a1;--pastel-amber-bg: #fef3c7;--pastel-amber-border: #fde68a;--pastel-amber-text: #92400e;--val-inc: #059669;--val-exp: #e11d48;--radius-lg: 14px;--radius-md: 8px;--radius-sm: 6px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-sheet: 0 -10px 30px rgba(0, 0, 0, .14);--shadow-toast: 0 10px 25px -5px rgba(0, 0, 0, .12), 0 8px 10px -6px rgba(0, 0, 0, .08)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.92}}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}body{font-family:Noto Sans Thai Looped,Plus Jakarta Sans,sans-serif;background-color:var(--bg-main);color:var(--text-main);min-height:100vh;overflow-x:hidden}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;display:inline-block;vertical-align:middle;line-height:1;font-size:19px}.simulator-bar{background:#fff;border-bottom:1px solid var(--border);padding:8px 16px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1000;flex-wrap:wrap;gap:8px}.sim-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sim-tag{font-size:12.5px;color:var(--text-muted);display:flex;align-items:center;gap:6px;font-weight:500}.user-profile-badge-btn{background:#fff;border:1px solid var(--pastel-lavender-border);border-radius:var(--radius-sm);padding:4px 10px;display:flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;font-size:12px;color:var(--text-main);transition:all .15s}.user-profile-badge-btn:hover{background:var(--pastel-lavender-bg)}.user-profile-badge-btn b{color:var(--pastel-lavender-text)}.user-branch-scope-tag{background:#f1f5f9;border:1px solid var(--border);padding:1px 6px;border-radius:4px;font-size:11px;color:var(--text-muted);font-weight:600}.app-frame{margin:0 auto;padding:20px;max-width:1440px}.app-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:16px}.brand-group{display:flex;align-items:center;gap:10px}.brand-icon{width:40px;height:40px;background:var(--pastel-lavender-bg);border:1px solid var(--pastel-lavender-border);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--pastel-lavender-text)}.brand-title h1{font-size:19px;font-weight:700;color:#0f172a;letter-spacing:-.3px}.brand-title p{font-size:12px;color:var(--text-muted)}.controls-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-user-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.btn-header-op{padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:5px;border-radius:10px;border:1px solid #c7d2fe;background:#f5f3ff;color:#4f46e5;cursor:pointer;white-space:nowrap;transition:all .15s ease;font-family:inherit}.btn-header-op:hover{background:#ede9fe;border-color:#a5b4fc}.btn-header-user{font-size:12px;background:#f8fafc;color:#1e293b;padding:6px 12px;border-radius:10px;font-weight:600;display:inline-flex;align-items:center;gap:6px;border:1px solid #cbd5e1;cursor:pointer;white-space:nowrap;transition:all .15s ease;font-family:inherit}.btn-header-user:hover{background:#f1f5f9;border-color:#94a3b8}.btn-header-logout{background:#fee2e2;border:1px solid #fecdd3;color:#dc2626;border-radius:10px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;transition:all .15s ease;font-family:inherit}.btn-header-logout:hover{background:#fecaca;border-color:#fca5a5}@media (max-width: 640px){.app-header{flex-direction:column;align-items:stretch;gap:10px}.header-user-actions{display:flex;width:100%;align-items:center;gap:6px;justify-content:space-between}.btn-header-op{padding:6px 8px;font-size:11px;flex-shrink:0}.btn-header-user{flex:1;min-width:0;justify-content:center;padding:6px 8px;font-size:11px}.btn-header-user .user-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.btn-header-logout{padding:6px 8px;font-size:11px;flex-shrink:0}}.picker-btn-trigger{background:#fff;border:1px solid var(--border);color:var(--text-main);padding:7px 12px;border-radius:var(--radius-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;box-shadow:var(--shadow-sm);transition:all .15s}.picker-btn-trigger:hover{background:#f8fafc;border-color:var(--border-strong)}.picker-btn-trigger.locked{background:#f1f5f9;cursor:default;opacity:.85}.btn-pastel-primary{background:var(--pastel-lavender-bg);color:var(--pastel-lavender-text);border:1px solid var(--pastel-lavender-border);padding:7px 14px;border-radius:var(--radius-md);font-family:inherit;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s}.btn-pastel-primary:hover{background:#c7d2fe}.btn-pastel-secondary{background:#fff;color:var(--text-main);border:1px solid var(--border);padding:7px 12px;border-radius:var(--radius-md);font-family:inherit;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s;text-decoration:none}.btn-pastel-secondary:hover{background:#f1f5f9}.restricted-branch-banner{background:#fffbeb;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:var(--radius-md);padding:8px 14px;margin-bottom:12px;font-size:12.5px;color:#92400e;display:flex;align-items:center;gap:8px}.client-sticky-header-container{width:100%}.desktop-branch-month-controls{display:block}.mobile-sticky-branch-month-bar,.mobile-quick-actions-grid{display:none}.active-branch-banner{background:linear-gradient(135deg,#eef2ff,#f0fdf4);border:1px solid var(--pastel-lavender-border);border-left:5px solid var(--pastel-lavender-text);border-radius:var(--radius-md);padding:10px 16px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;box-shadow:var(--shadow-sm)}.banner-left{display:flex;align-items:center;gap:10px}.banner-icon-box{width:34px;height:34px;background:#fff;border:1px solid var(--pastel-lavender-border);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--pastel-lavender-text)}.header-action-controls-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr 1fr;gap:10px;margin-bottom:18px;width:100%}.header-action-controls-grid.viewer-view{grid-template-columns:1.2fr 1fr}.action-control-btn{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;display:flex;align-items:center;justify-content:center;gap:7px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s;min-height:44px;white-space:nowrap}.action-control-btn.month-btn{background:#fff;border-color:#cbd5e1;color:var(--text-main);justify-content:space-between;transition:all .2s ease}.action-control-btn.month-btn.is-current-month{background:linear-gradient(135deg,#f0fdf4,#ecfdf5,#eff6ff);border-color:#86efac;box-shadow:0 2px 8px -2px #10b98133,inset 0 1px #ffffffe6}.action-control-btn.month-btn.is-current-month:hover{background:linear-gradient(135deg,#dcfce7,#d1fae5,#dbeafe);border-color:#4ade80;box-shadow:0 4px 12px -2px #10b9814d}.action-control-btn.month-btn.is-other-month{background:#fff;border-color:#cbd5e1}.action-control-btn.month-btn.is-other-month:hover{background:#f8fafc;border-color:var(--pastel-lavender-border)}.current-month-chip{background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:12px;letter-spacing:.3px;box-shadow:0 1px 4px #10b98159;display:inline-flex;align-items:center;margin-left:4px}.past-month-chip{background:#fef3c7;border:1px solid #fde68a;color:#b45309;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;display:inline-flex;align-items:center;margin-left:4px}.action-control-btn.month-btn .btn-inner-left{display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-control-btn.exec-summary-btn{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.action-control-btn.exec-summary-btn:hover{background:#d1fae5;border-color:#6ee7b7;color:#047857}.action-control-btn.primary-entry-btn{background:#4f46e5;border-color:#4338ca;color:#fff;box-shadow:0 2px 5px #4f46e547}.action-control-btn.primary-entry-btn:hover{background:#4338ca;border-color:#3730a3;box-shadow:0 4px 10px #4f46e559}.action-control-btn.export-btn{background:#f5f3ff;border-color:#ddd6fe;color:#4f46e5}.action-control-btn.export-btn:hover{background:#ede9fe;border-color:#c4b5fd;color:#4338ca}@media (max-width: 768px){.app-frame{padding:10px;width:100%;max-width:100vw;overflow-x:clip}.desktop-branch-month-controls{display:none!important}.client-sticky-header-container{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:#f1f5f9;background:linear-gradient(180deg,#f8fafc,#edf2f7,#e2e8f0);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:max(8px,env(safe-area-inset-top,8px));padding-bottom:8px;margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;width:calc(100% + 20px);box-sizing:border-box;border-bottom:1px solid #cbd5e1;box-shadow:0 4px 14px -2px #64748b1f,inset 0 1px #ffffffe6;margin-bottom:8px}.mobile-sticky-branch-month-bar{display:grid!important;grid-template-columns:1.1fr 1fr;gap:8px;width:100%;box-sizing:border-box}.mobile-sticky-btn{background:linear-gradient(135deg,#fff,#f8fafc 60%,#edf2f7);border:1px solid #cbd5e1;border-radius:12px;padding:6px 10px;display:flex;align-items:center;gap:8px;font-family:inherit;text-align:left;min-height:48px;box-shadow:0 2px 6px -1px #64748b14,inset 0 1px #ffffffe6;transition:all .15s ease;overflow:hidden}.mobile-sticky-btn.branch-btn{border-left:4px solid #6366f1}.mobile-sticky-btn.month-btn{border-left:4px solid #10b981}.mobile-sticky-btn.month-btn.is-current-month{background:linear-gradient(135deg,#f0fdf4,#fff,#eff6ff);border-left:4px solid #10b981;border-color:#86efac;box-shadow:0 2px 8px -2px #10b98133,inset 0 1px #ffffffe6}.mobile-sticky-btn.month-btn.is-other-month{border-left:4px solid #f59e0b}.m-btn-current-tag{background:#10b981;color:#fff;font-size:8.5px;font-weight:800;padding:1px 5px;border-radius:6px;line-height:1.1;letter-spacing:.2px}.m-btn-past-tag{background:#fef3c7;color:#b45309;font-size:8.5px;font-weight:700;padding:1px 5px;border-radius:6px;line-height:1.1}.mobile-sticky-btn:active{transform:scale(.98);background:#f1f5f9}.mobile-sticky-btn .m-btn-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-sticky-btn .m-btn-icon.branch-icon{background:#ede9fe;color:#4f46e5}.mobile-sticky-btn .m-btn-icon.month-icon{background:#dcfce7;color:#059669}.mobile-sticky-btn .m-btn-icon.month-icon.is-current{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 6px #10b98159}.mobile-sticky-btn .m-btn-text{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.mobile-sticky-btn .m-btn-label{font-size:10px;font-weight:700;color:#64748b;line-height:1.1;text-transform:uppercase;letter-spacing:.2px}.mobile-sticky-btn .m-btn-val{font-size:12.5px;font-weight:700;color:#0f172a;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-sticky-btn .m-btn-arrow{font-size:16px;color:#94a3b8;flex-shrink:0}.mobile-quick-actions-grid{display:grid!important;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.mobile-quick-actions-grid.viewer-view{grid-template-columns:1fr}.mobile-quick-actions-grid.viewer-view .action-control-btn{flex-direction:row;gap:8px;min-height:42px}.mobile-quick-actions-grid .action-control-btn{padding:8px 4px;font-size:11.5px;min-height:44px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;white-space:nowrap}.mobile-quick-actions-grid .action-control-btn .material-symbols-outlined{font-size:18px}.mobile-quick-actions-grid .action-control-btn .btn-label-text{font-size:11px;font-weight:700;line-height:1.1}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;position:relative;box-shadow:var(--shadow-sm)}.stat-card.income{border-top:3px solid var(--val-inc)}.stat-card.expense{border-top:3px solid var(--val-exp)}.stat-card.profit{border-top:3px solid var(--pastel-lavender-text)}.stat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.stat-title{font-size:12.5px;color:var(--text-muted);font-weight:600}.stat-icon-wrapper{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center}.stat-card.income .stat-icon-wrapper{background:var(--pastel-mint-bg);color:var(--val-inc)}.stat-card.expense .stat-icon-wrapper{background:var(--pastel-rose-bg);color:var(--val-exp)}.stat-card.profit .stat-icon-wrapper{background:var(--pastel-lavender-bg);color:var(--pastel-lavender-text)}.stat-value{font-size:26px;font-weight:700;letter-spacing:-.5px;margin-bottom:4px}.stat-card.income .stat-value{color:var(--val-inc)}.stat-card.expense .stat-value{color:var(--val-exp)}.stat-card.profit .stat-value{color:#0f172a}.stat-footer{font-size:11.5px;color:var(--text-muted)}.tab-navigation{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:8px;width:100%}.tab-nav-desktop{display:flex;gap:8px;flex-wrap:wrap;width:100%}.tab-item{background:#fff;border:1px solid var(--border);color:var(--text-muted);font-family:inherit;font-size:13px;font-weight:600;padding:8px 16px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:all .15s;box-shadow:var(--shadow-sm)}.tab-item:hover{background:#f8fafc;color:var(--text-main)}.tab-item.active{background:var(--pastel-lavender-bg);color:var(--pastel-lavender-text);border-color:var(--pastel-lavender-border);box-shadow:var(--shadow-sm)}.tab-nav-mobile-wrapper{display:none;width:100%}.btn-mobile-menu-trigger{width:100%;background:#fff;border:1.5px solid var(--pastel-lavender-border);border-radius:var(--radius-md);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-sm);transition:all .15s}.btn-mobile-menu-trigger:hover{background:var(--pastel-lavender-bg)}.mobile-current-menu-box{display:flex;align-items:center;gap:8px;font-size:14px}@media (max-width: 992px){.tab-nav-desktop{display:none!important}.tab-nav-mobile-wrapper{display:block!important}.app-frame{padding:12px 10px}}.matrix-container{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.matrix-toolbar{padding:10px 14px;background:#fff;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:12.5px}.week-jumper-bar{display:flex;gap:4px;overflow-x:auto;padding:6px 10px;background:#f8fafc;border-bottom:1px solid var(--border);scrollbar-width:none}.week-jump-btn{background:#fff;border:1px solid var(--border);padding:4px 9px;border-radius:4px;font-size:11.5px;font-weight:600;color:var(--text-main);cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .15s}.table-scroll-wrapper{max-height:560px;overflow-x:auto;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.matrix-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;text-align:right}.matrix-table th,.matrix-table td{padding:6px;border-right:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;white-space:nowrap}.matrix-table th{background:#f8fafc;color:var(--text-muted);font-weight:600;position:sticky;top:0;z-index:10;text-align:center;border-bottom:1px solid var(--border);min-width:48px}.matrix-table td.col-sticky,.matrix-table th.col-sticky{position:sticky;left:0;background:#fff;z-index:12;text-align:left;min-width:100px;max-width:120px;font-weight:600;color:var(--text-main);border-right:1px solid var(--border-strong);padding-left:8px}.matrix-table th.col-sticky{z-index:20;background:#f8fafc}.matrix-table td.col-summary,.matrix-table th.col-summary{position:sticky;right:0;background:#f8fafc;z-index:11;font-weight:700;border-left:1px solid var(--border-strong);color:var(--text-main)}.matrix-table th.col-summary{z-index:20}.matrix-table tr.header-income td{background:var(--pastel-mint-bg);color:var(--pastel-mint-text);font-weight:700;font-size:12px;text-align:left;padding:5px 8px;border-top:1px solid var(--pastel-mint-border);border-bottom:1px solid var(--pastel-mint-border)}.matrix-table tr.header-expense td{background:var(--pastel-rose-bg);color:var(--pastel-rose-text);font-weight:700;font-size:12px;text-align:left;padding:5px 8px;border-top:1px solid var(--pastel-rose-border);border-bottom:1px solid var(--pastel-rose-border)}.matrix-table tr.subtotal-income td{background:#f0fdf4;font-weight:700;color:var(--val-inc);border-top:1px solid var(--border);border-bottom:1px solid var(--border-strong)}.matrix-table tr.subtotal-expense td{background:#fff1f2;font-weight:700;color:var(--val-exp);border-top:1px solid var(--border);border-bottom:1px solid var(--border-strong)}.matrix-table tr.row-net-profit td{background:#fff;font-weight:800;border-top:1px solid #c7d2fe;border-bottom:2px solid #6366f1;color:#0f172a}.matrix-table tr.row-note td{background:#fffbeb;font-size:11px;color:#92400e;text-align:center;border-top:1px solid var(--pastel-amber-border);border-bottom:1px solid var(--pastel-amber-border);max-width:80px;overflow:hidden;text-overflow:ellipsis}.matrix-table tr.row-note td.col-sticky{background:#fef3c7;color:#78350f;font-weight:700;text-align:left}.matrix-table td.val-income{color:var(--val-inc);font-weight:500}.matrix-table td.val-expense{color:var(--val-exp);font-weight:500}.matrix-table td.val-zero{color:#cbd5e1}.matrix-table td.is-today,.matrix-table th.is-today{background:#ede9fe!important;font-weight:700;border-left:1px solid #a5b4fc;border-right:1px solid #a5b4fc}.mobile-view-container{display:flex;flex-direction:column;gap:14px}.mobile-sub-nav{display:flex;background:#f1f5f9;padding:2px;border-radius:6px;gap:2px;border:1px solid var(--border)}.mobile-sub-btn{flex:1;background:transparent;border:none;padding:6px 8px;font-size:12px;font-weight:600;color:var(--text-muted);border-radius:4px;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:4px}.mobile-sub-btn.active{background:#fff;color:var(--pastel-lavender-text);box-shadow:var(--shadow-sm)}.month-calendar-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;box-shadow:var(--shadow-sm)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{background:#f8fafc;border:1px solid var(--border);border-radius:4px;padding:4px 2px;min-height:54px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:all .15s}.cal-cell:hover,.cal-cell.active{border-color:#818cf8;background:#ede9fe;box-shadow:var(--shadow-sm)}.cal-cell-header{font-size:11px;font-weight:700;color:var(--text-main);display:flex;justify-content:space-between;align-items:center;padding:0 2px}.cal-cell-net{font-size:9.5px;font-weight:700;text-align:center;line-height:1.1}.cal-cell-net.inc{color:var(--val-inc)}.cal-cell-net.exp{color:var(--val-exp)}.cal-cell-net.zero{color:#cbd5e1}.cal-note-dot{width:4px;height:4px;border-radius:50%;background:#f59e0b;display:inline-block}.vertical-table-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.vtable{width:100%;border-collapse:collapse;font-size:12px}.vtable th{background:#f8fafc;color:var(--text-muted);padding:7px 8px;text-align:right;font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap}.vtable th:first-child{text-align:left}.vtable td{padding:8px;border-bottom:1px solid #f1f5f9;text-align:right;white-space:nowrap}.vtable td:first-child{text-align:left;font-weight:600;color:#0f172a}.vtable tr{cursor:pointer;transition:background .1s ease}.vtable tr:hover,.vtable tr.active-row{background:#f1f5f9}.day-v-meta{display:flex;align-items:center;gap:6px}.day-note-dot{width:6px;height:6px;border-radius:50%;background:#f59e0b;display:inline-block;flex-shrink:0;box-shadow:0 0 0 2px #f59e0b40}.day-note-preview{font-size:10.5px;color:#92400e;background:#fef3c7;padding:1px 4px;border-radius:3px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.payroll-container{display:flex;flex-direction:column;gap:16px}.payroll-period-bar{background:linear-gradient(135deg,#fff,#fafbfc);border:1px solid var(--border);border-radius:16px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;box-shadow:0 2px 8px -2px #0f172a0a}.payroll-period-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.period-toggle-group{display:inline-flex;background:#f1f5f9;padding:4px;border-radius:12px;gap:4px;border:1px solid rgba(226,232,240,.8)}.period-btn{background:transparent;border:none;padding:6px 14px;border-radius:9px;font-size:13px;font-weight:600;color:#64748b;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:8px;transition:all .2s cubic-bezier(.4,0,.2,1)}.period-btn .period-num-icon{font-size:19px;color:#94a3b8;transition:color .15s}.period-btn-content{display:flex;flex-direction:column;text-align:left;line-height:1.15}.period-btn-title{font-size:12.5px;font-weight:700}.period-btn-sub{font-size:10.5px;color:#94a3b8;font-weight:500}.period-btn:hover{color:#1e293b}.period-btn.active{background:#fff;color:#3730a3;box-shadow:0 2px 6px -1px #00000014,0 1px 3px #0000000a}.period-btn.period-1.active{color:#1e40af;box-shadow:0 2px 6px -1px #2563eb26,0 1px 3px #0000000a}.period-btn.period-1.active .period-num-icon,.period-btn.period-1.active .period-btn-sub{color:#2563eb}.period-btn.period-2.active{color:#6b21a8;box-shadow:0 2px 6px -1px #7c3aed26,0 1px 3px #0000000a}.period-btn.period-2.active .period-num-icon,.period-btn.period-2.active .period-btn-sub{color:#7c3aed}.payroll-period-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:12.5px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1)}.payroll-period-badge.period-1{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.payroll-period-badge.period-1 .badge-icon{color:#2563eb}.payroll-period-badge.period-2{background:#faf5ff;border:1px solid #e9d5ff;color:#6b21a8}.payroll-period-badge.period-2 .badge-icon{color:#7c3aed}.payroll-period-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-payroll-copy{background:#fff;color:#334155;border:1px solid #cbd5e1;padding:8px 14px;border-radius:10px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:all .15s;white-space:nowrap}.btn-payroll-copy:hover{background:#f8fafc;border-color:#94a3b8;color:#0f172a}.btn-payroll-add{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;border:1px solid #4338ca;padding:8px 16px;border-radius:10px;font-family:inherit;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 2px 6px -1px #4f46e559;transition:all .15s;white-space:nowrap}.btn-payroll-add:hover{background:linear-gradient(135deg,#4338ca,#4f46e5);box-shadow:0 4px 10px -2px #4f46e573}.btn-payroll-add:active,.btn-payroll-copy:active{transform:scale(.98)}.payroll-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.p-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-sm)}.p-stat-title{font-size:12px;color:var(--text-muted);margin-bottom:4px;font-weight:600}.p-stat-val{font-size:22px;font-weight:700;color:#0f172a}.payroll-period-label-tag{font-size:12.5px;color:var(--text-muted);background:#f8fafc;border:1px solid var(--border);padding:5px 10px;border-radius:var(--radius-md)}.payroll-search-toolbar{display:flex;align-items:center;gap:10px;margin-top:4px;margin-bottom:4px;flex-wrap:wrap}.payroll-search-input-box{position:relative;flex:1;min-width:220px;display:flex;align-items:center}.payroll-search-input-box .search-icon{position:absolute;left:10px;font-size:18px;color:var(--text-muted);pointer-events:none}.payroll-search-input{width:100%;padding:8px 32px 8px 34px;font-size:13px;font-family:inherit;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-main);outline:none;transition:all .15s}.payroll-search-input:focus{border-color:var(--pastel-lavender-border);box-shadow:0 0 0 3px #a5b4fc33}.payroll-search-clear{position:absolute;right:8px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;padding:2px}.payroll-search-clear .material-symbols-outlined{font-size:16px}.payroll-branch-select-box{position:relative;display:flex;align-items:center;min-width:180px}.payroll-branch-select-box .select-icon{position:absolute;left:10px;font-size:17px;color:var(--text-muted);pointer-events:none}.payroll-branch-select{width:100%;padding:8px 12px 8px 32px;font-size:13px;font-family:inherit;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-main);outline:none;cursor:pointer}.payroll-desktop-table-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-sm);display:block}.payroll-table{width:100%;border-collapse:collapse;font-size:12px;text-align:right}.payroll-table th,.payroll-table td{padding:8px 10px;border-bottom:1px solid #f1f5f9;white-space:nowrap}.payroll-table th{background:#f8fafc;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);text-align:right;font-size:11px;text-transform:uppercase;letter-spacing:.3px}.payroll-table th:first-child,.payroll-table td:first-child,.payroll-table th:nth-child(2),.payroll-table td:nth-child(2),.payroll-table th:nth-child(3),.payroll-table td:nth-child(3){text-align:left}.payroll-table tr:hover{background:#f8fafc}.payroll-table td.emp-name{font-weight:700;color:#0f172a}.payroll-table td.val-net{font-size:13px;font-weight:800;color:#1e1b4b}.emp-seq-badge{width:22px;height:22px;border-radius:6px;background:#eef2ff;border:1px solid #c7d2fe;color:#4338ca;font-weight:800;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.emp-avatar-circle{width:24px;height:24px;border-radius:50%;background:var(--pastel-lavender-bg);border:1px solid var(--pastel-lavender-border);display:flex;align-items:center;justify-content:center;color:var(--pastel-lavender-text);flex-shrink:0}.btn-payroll-row-action{background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 5px;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;transition:all .15s}.btn-payroll-row-action .material-symbols-outlined{font-size:14px}.btn-payroll-row-action.edit:hover{background:var(--pastel-lavender-bg);border-color:var(--pastel-lavender-border);color:var(--pastel-lavender-text)}.btn-payroll-row-action.delete:hover{background:var(--pastel-rose-bg);border-color:var(--pastel-rose-border);color:var(--val-exp)}.payroll-mobile-cards-view{display:none;flex-direction:column;gap:8px}.payroll-empty-mobile-card{background:#fff;border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:24px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.p-mobile-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:9px 12px;box-shadow:0 1px 2px #00000008;display:flex;flex-direction:column;gap:6px;transition:border-color .15s}.p-mobile-card:hover{border-color:var(--pastel-lavender-border)}.p-mcard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.p-mcard-user-info{display:flex;align-items:center;gap:8px}.p-mcard-avatar{width:28px;height:28px;border-radius:6px;background:var(--pastel-lavender-bg);border:1px solid var(--pastel-lavender-border);display:flex;align-items:center;justify-content:center;color:var(--pastel-lavender-text);flex-shrink:0}.p-mcard-avatar .material-symbols-outlined{font-size:16px}.p-mcard-name{font-size:13.5px;font-weight:700;color:#0f172a;line-height:1.2}.p-mcard-branch{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:3px;margin-top:1px}.p-mcard-branch .material-symbols-outlined{font-size:12px}.p-mcard-badges{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.p-mcard-net-banner{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;display:flex;justify-content:space-between;align-items:center}.p-mcard-net-title{font-size:11px;font-weight:600;color:var(--text-muted)}.p-mcard-net-amount{font-size:15px;font-weight:800;color:#1e1b4b}.p-mcard-breakdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;background:#fff;padding:2px 0;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;font-size:11px}.p-breakdown-item{display:flex;justify-content:space-between;align-items:center;gap:4px}.p-breakdown-item .p-lbl{color:var(--text-muted);font-size:10.5px}.p-breakdown-item .p-val{font-weight:600;color:#0f172a}.p-breakdown-item.inc .p-val{color:var(--val-inc)}.p-breakdown-item.exp .p-val{color:var(--val-exp)}.p-breakdown-item.full-width{grid-column:1 / -1}.p-breakdown-item.note-item{margin-top:1px;padding-top:2px;border-top:1px dashed #f1f5f9}.p-breakdown-item .p-val.note{font-size:10.5px;color:#475569;font-weight:400;text-align:right}.p-mcard-actions{display:flex;gap:6px;margin-top:0}.btn-p-mcard-action{flex:1;min-height:28px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-family:inherit;font-size:11.5px;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:#fff;transition:all .15s}.btn-p-mcard-action .material-symbols-outlined{font-size:14px}.btn-p-mcard-action.edit{background:#f8fafc;color:var(--text-main);border-color:var(--border)}.btn-p-mcard-action.edit:active{background:var(--pastel-lavender-bg);border-color:var(--pastel-lavender-border);color:var(--pastel-lavender-text)}.btn-p-mcard-action.delete{background:#fff;color:var(--val-exp);border-color:var(--pastel-rose-border)}.btn-p-mcard-action.delete:active{background:var(--pastel-rose-bg)}.analytics-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm)}.chart-title{font-size:13.5px;font-weight:700;margin-bottom:14px;color:#0f172a;display:flex;justify-content:space-between;align-items:center}.chart-container-tall{position:relative;width:100%;height:240px}.chart-container-doughnut{position:relative;width:100%;height:200px}@media (max-width: 640px){.chart-container-tall{height:200px}.chart-container-doughnut{height:190px}}.bottom-sheet-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2500;opacity:0;transition:opacity .16s ease-out}.bottom-sheet-backdrop.show{display:block;opacity:1}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--border-strong);border-radius:18px 18px 0 0;padding:12px 18px 24px;max-width:480px;margin:0 auto;z-index:2600;box-shadow:var(--shadow-sheet);transform:translateY(100%);transition:transform .18s cubic-bezier(.16,1,.3,1);max-height:85vh;overflow-y:auto}.bottom-sheet.show{transform:translateY(0)}.sheet-handle-bar{width:36px;height:4px;background:#cbd5e1;border-radius:2px;margin:0 auto 12px}.sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.sheet-title{font-size:15px;font-weight:700;color:#0f172a}.sheet-close-btn{background:#f1f5f9;border:1px solid var(--border);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted)}.sheet-stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;text-align:center;background:#f8fafc;border:1px solid var(--border);padding:8px;border-radius:var(--radius-md);margin-bottom:12px}.sheet-stat-label{font-size:11px;color:var(--text-muted);margin-bottom:2px}.sheet-stat-val{font-size:14px;font-weight:700}.sheet-note-box{background:#fefce8;border:1px solid #fef08a;border-left:4px solid #eab308;border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:12px;font-size:12px;color:#854d0e;display:flex;align-items:flex-start;gap:6px}.sheet-section-title{font-size:12px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:4px}.sheet-table{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);border-collapse:collapse;background:#fff;margin-bottom:12px}.sheet-table td{padding:7px 10px;border-bottom:1px solid #f1f5f9;font-size:13px}.sheet-table tr:last-child td{border-bottom:none}.sheet-table td.cat-val{text-align:right;font-weight:700}.sheet-actions{display:flex;gap:8px;margin-top:14px}.sheet-btn-edit{flex:1;background:var(--pastel-lavender-bg);color:var(--pastel-lavender-text);border:1px solid var(--pastel-lavender-border);padding:9px;border-radius:var(--radius-md);font-weight:600;font-family:inherit;font-size:13.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.modal-overlay{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:3000;align-items:center;justify-content:center;padding:14px;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-box{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:88vh;max-height:88dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-padding-bottom:90px;scroll-padding-top:20px;padding:18px 18px 22px;box-shadow:var(--shadow-md);position:relative;margin:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);position:sticky;top:-18px;background:#fff;z-index:20;margin-top:-6px;padding-top:6px}.modal-header h2{font-size:16px;font-weight:700;color:#0f172a;display:flex;align-items:center;gap:6px}.modal-close{background:#f1f5f9;border:1px solid var(--border);border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;padding:2px}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px}.form-group{margin-bottom:8px}.form-label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px;font-weight:600}.form-input,.form-textarea,.form-select{width:100%;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 12px;color:#0f172a;font-family:inherit;font-size:14px;outline:none;scroll-margin-bottom:90px;scroll-margin-top:50px}.form-textarea{resize:vertical;min-height:54px}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.form-section-title{font-size:12px;font-weight:700;padding:4px 8px;border-radius:var(--radius-sm);margin:10px 0 6px;display:flex;align-items:center;gap:4px}.form-section-title.inc{background:var(--pastel-mint-bg);color:var(--pastel-mint-text);border-left:3px solid var(--val-inc)}.form-section-title.exp{background:var(--pastel-rose-bg);color:var(--pastel-rose-text);border-left:3px solid var(--val-exp)}.form-section-title.note{background:#fef3c7;color:#92400e;border-left:3px solid #f59e0b}.grid-input-row{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:8px;margin-bottom:6px}.grid-input-row input{scroll-margin-bottom:90px;scroll-margin-top:50px}.grid-input-label{font-size:12px;font-weight:500;color:var(--text-main)}.btn-submit{width:100%;padding:11px;background:var(--pastel-lavender-bg);color:var(--pastel-lavender-text);border:1px solid var(--pastel-lavender-border);border-radius:var(--radius-md);font-weight:700;font-family:inherit;font-size:14px;cursor:pointer;margin-top:0;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s;box-shadow:0 1px 3px #0000000d}.btn-submit:hover{background:#c7d2fe}.modal-sticky-footer{position:sticky;bottom:-22px;background:#fff;padding:10px 0 14px;margin-top:14px;border-top:1px solid #f1f5f9;box-shadow:0 -8px 20px #fffffff5,0 -4px 10px #0000000a;z-index:25}.modal-footer{position:sticky;bottom:-22px;background:#fff;margin-top:16px;padding:10px 0 14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:10px;box-shadow:0 -8px 20px #fffffff5,0 -4px 10px #0000000a;z-index:25}.btn-modal-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:var(--radius-md);font-size:13.5px;font-weight:700;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:all .15s ease;-webkit-user-select:none;user-select:none}.btn-modal-action.secondary{background:#fff;border-color:var(--border);color:var(--text-muted)}.btn-modal-action.secondary:hover{background:#f8fafc;color:var(--text-main);border-color:#cbd5e1}.btn-modal-action.primary{background:#6366f1;border-color:#4f46e5;color:#fff;box-shadow:0 2px 4px #6366f140}.btn-modal-action.primary:hover:not(:disabled){background:#4f46e5;border-color:#4338ca;box-shadow:0 4px 8px #6366f159;transform:translateY(-1px)}.btn-modal-action.primary:active:not(:disabled){transform:translateY(0)}.btn-modal-action:disabled{opacity:.6;cursor:not-allowed}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:90%;max-width:400px}.exec-summary-modal{font-family:inherit}.exec-header{padding:16px 20px;background:linear-gradient(135deg,#1e1b4b,#312e81 60%,#4338ca);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px;position:relative}.exec-badge-live{display:inline-flex;align-items:center;gap:6px;background:#10b98133;border:1px solid rgba(110,231,183,.4);color:#6ee7b7;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700;letter-spacing:.5px;margin-bottom:4px}.live-dot{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b981;animation:pulse 2s infinite}.exec-title{font-size:17px;font-weight:800;color:#fff;margin:0;line-height:1.25}.exec-subtitle{display:flex;align-items:center;gap:6px;font-size:12px;color:#c7d2fe;margin-top:2px}.exec-header-actions{display:flex;align-items:center;gap:8px}.btn-exec-export-icon{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .15s}.btn-exec-export-icon:hover{background:#ffffff47;transform:scale(1.05)}.btn-exec-close{background:#ffffff1f;border:none;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.btn-exec-close:hover{background:#ffffff40;transform:scale(1.05)}.exec-subtabs{display:grid;grid-template-columns:repeat(4,1fr);background:#f1f5f9;border-bottom:1.5px solid #e2e8f0;padding:6px 12px;gap:6px;box-sizing:border-box;width:100%}.exec-tab-btn{background:transparent;border:1px solid transparent;padding:8px 6px;border-radius:10px;font-family:inherit;font-size:12.5px;font-weight:600;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;transition:all .15s ease;min-width:0;box-sizing:border-box}.exec-tab-btn span.material-symbols-outlined{font-size:17px;flex-shrink:0}.exec-tab-btn .tab-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-tab-btn:hover{background:#ffffffd9;color:#1e293b}.exec-tab-btn.active{background:#fff;border-color:#cbd5e1;color:#4338ca;font-weight:700;box-shadow:0 2px 6px -1px #4338ca24,0 1px 2px #0000000d}.exec-tab-btn.active span.material-symbols-outlined{color:#4f46e5}@media (max-width: 600px){.exec-subtabs{grid-template-columns:repeat(4,1fr);padding:6px 4px;gap:4px}.exec-tab-btn{padding:6px 2px;flex-direction:column;gap:2px;font-size:10.5px}.exec-tab-btn span.material-symbols-outlined{font-size:17px}}.exec-body{padding:18px 20px;overflow-y:auto;overflow-x:hidden;flex:1;background:#f8fafc;box-sizing:border-box;width:100%}.exec-tab-pane{display:flex;flex-direction:column;gap:16px;width:100%;box-sizing:border-box;overflow-x:hidden}.exec-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.exec-kpi-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:11px 13px;display:flex;flex-direction:column;justify-content:space-between;min-height:92px;box-sizing:border-box;box-shadow:0 1px 3px #0000000a}.exec-kpi-card.income{border-left:4px solid #10b981;background:linear-gradient(135deg,#fff,#f0fdf4)}.exec-kpi-card.expense{border-left:4px solid #f43f5e;background:linear-gradient(135deg,#fff,#fff1f2)}.exec-kpi-card.payroll{border-left:4px solid #8b5cf6;background:linear-gradient(135deg,#fff,#f5f3ff)}.exec-kpi-card.profit.positive{border-left:4px solid #6366f1;background:linear-gradient(135deg,#fff,#eef2ff)}.exec-kpi-card.profit.negative{border-left:4px solid #dc2626;background:linear-gradient(135deg,#fff,#fef2f2)}.exec-kpi-top{display:flex;justify-content:space-between;align-items:center;gap:6px}.exec-kpi-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exec-kpi-icon{font-size:16px;color:#94a3b8;flex-shrink:0}.exec-kpi-val{font-size:15.5px;font-weight:800;color:#0f172a;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exec-kpi-foot{font-size:10.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exec-insights-box{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px 16px;box-shadow:0 1px 3px #0000000a}.exec-section-title{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:#0f172a;margin-bottom:12px}.exec-insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.insight-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f8fafc;border:1px solid var(--border);border-radius:12px}.insight-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.insight-content{flex:1;min-width:0}.insight-label{font-size:11px;color:#64748b;font-weight:600}.insight-val{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insight-sub{font-size:11px;color:#64748b;font-weight:500}.exec-ranking-card-box,.exec-quick-ranking{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px 16px}.btn-exec-view-all{background:transparent;border:none;color:#4f46e5;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}.btn-exec-view-all:hover{text-decoration:underline}.exec-ranking-list{display:flex;flex-direction:column;gap:8px}.ranking-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;border:1px solid var(--border);border-radius:10px;gap:8px}.ranking-rank{font-size:15px;font-weight:800;width:26px;text-align:center;flex-shrink:0}.ranking-branch-info{flex:1;min-width:0}.ranking-name{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-meta{font-size:11px;color:#64748b}.ranking-profit-box{text-align:right;flex-shrink:0}.ranking-profit{font-size:13.5px;font-weight:800}.ranking-profit.pos{color:#059669}.ranking-profit.neg{color:#e11d48}.ranking-margin{font-size:10.5px;color:#64748b;font-weight:600}.exec-branch-header-note{font-size:12.5px;color:#475569;background:#eff6ff;border:1px solid #bfdbfe;padding:8px 14px;border-radius:10px;font-weight:500}.exec-branches-table-wrapper{background:#fff;border:1px solid var(--border);border-radius:16px;overflow-x:auto}.exec-branches-table{width:100%;border-collapse:collapse;font-size:12.5px}.exec-branches-table th{background:#f8fafc;color:#475569;padding:10px 12px;font-weight:700;border-bottom:1px solid var(--border);white-space:nowrap}.exec-branches-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9}.exec-branches-table tr:hover td{background:#f8fafc}.exec-branches-table tr.row-selected td{background:#eef2ff}.exec-breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.breakdown-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px 16px}.breakdown-list{display:flex;flex-direction:column;gap:10px}.breakdown-item-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:4px}.b-name{font-weight:700;color:#0f172a}.b-amount{font-weight:600;color:#64748b}.b-bar-track{height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden}.b-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.b-bar-fill.income{background:linear-gradient(90deg,#10b981,#059669)}.b-bar-fill.expense{background:linear-gradient(90deg,#f43f5e,#e11d48)}.ledger-unified-summary-bar{display:flex;align-items:center;justify-content:space-around;background:#fff;border:1px solid var(--border);border-radius:12px;padding:6px 14px;gap:12px;box-shadow:0 1px 3px #00000008}.l-summary-item{display:flex;align-items:center;gap:6px;font-size:12px}.l-sum-left{display:flex;align-items:center;gap:6px}.l-sum-right{display:flex;align-items:center;gap:4px}.l-sum-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.l-sum-dot.inc{background:#10b981}.l-sum-dot.exp{background:#f43f5e}.l-sum-dot.net{background:#6366f1}.l-sum-lbl{font-weight:600;color:#64748b;white-space:nowrap}.l-sum-val{font-weight:800;font-size:13px;white-space:nowrap}.l-sum-val.inc{color:#15803d}.l-sum-val.exp{color:#e11d48}.l-sum-val.pos{color:#4f46e5}.l-sum-val.neg{color:#dc2626}.l-sum-margin-badge{background:#e0e7ff;color:#4338ca;padding:1px 6px;border-radius:8px;font-size:10.5px;font-weight:700;margin-left:2px}.l-summary-sep{width:1px;height:16px;background:#e2e8f0}.ledger-table-container{background:#fff;border:1px solid #cbd5e1;border-radius:14px;overflow:auto;max-height:58vh;box-shadow:0 1px 3px #0000000a}.ledger-table{width:100%;border-collapse:collapse;font-size:11.5px;text-align:right;white-space:nowrap}.ledger-head-group th{padding:6px 8px;font-size:11px;font-weight:700;text-align:center;border-bottom:1px solid #cbd5e1;position:sticky;top:0;z-index:5}.th-day-group{background:#e2e8f0;color:#334155;width:40px;border-right:1px solid #cbd5e1;position:sticky;left:0;z-index:6!important}.th-inc-group{background:#bbf7d0;color:#166534;border-right:1px solid #94a3b8}.th-exp-group{background:#fecdd3;color:#9f1239;border-right:1px solid #94a3b8}.th-net-group{background:#c7d2fe;color:#1e1b4b;border-right:1px solid #cbd5e1;width:90px}.th-note-group{background:#f1f5f9;color:#334155;min-width:160px;text-align:left!important}.ledger-head-sub th{padding:5px 8px;font-size:10.5px;font-weight:700;border-bottom:2px solid #94a3b8;position:sticky;top:28px;z-index:5}.th-cat.inc{background:#dcfce7;color:#166534;border-right:1px solid #bbf7d0}.th-cat.inc-total{background:#86efac;color:#14532d;border-right:1px solid #94a3b8;font-weight:800}.th-cat.exp{background:#ffe4e6;color:#9f1239;border-right:1px solid #fecdd3}.th-cat.exp-total{background:#fda4af;color:#881337;border-right:1px solid #94a3b8;font-weight:800}.ledger-row td{padding:5px 8px;border-bottom:1px solid #f1f5f9}.ledger-row.even{background:#fff}.ledger-row.odd{background:#f8fafc}.ledger-row:hover{background:#eff6ff}.ledger-row.zero-row{opacity:.65}.td-day{text-align:center;font-weight:700;color:#334155;background:#f1f5f9;border-right:1px solid #e2e8f0;position:sticky;left:0;z-index:2}.td-num.inc.has-val{color:#15803d;font-weight:600}.td-num.inc-sum{background:#f0fdf4;color:#166534;font-weight:700;border-right:1px solid #cbd5e1}.td-num.exp.has-val{color:#be123c;font-weight:600}.td-num.exp-sum{background:#fff1f2;color:#9f1239;font-weight:700;border-right:1px solid #cbd5e1}.td-num.net{font-weight:700;border-right:1px solid #cbd5e1}.td-num.net.pos{color:#15803d}.td-num.net.neg{color:#e11d48}.td-num.muted{color:#cbd5e1;font-weight:400}.td-note{text-align:left;max-width:280px;white-space:normal}.ledger-notes-wrap{display:flex;flex-direction:column;gap:3px}.ledger-note-pill{display:inline-flex;align-items:baseline;gap:4px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:2px 6px;border-radius:6px;font-size:11px;line-height:1.3}.note-branch-tag{font-weight:700;color:#b45309;font-size:10px}.note-empty{color:#cbd5e1;font-size:11px}.ledger-foot-row td{padding:8px;font-weight:800;position:sticky;bottom:0;z-index:4}.tf-label{text-align:center;background:#1e1b4b;color:#fff;position:sticky;left:0;z-index:6!important}.tf-num.inc{background:#dcfce7;color:#166534}.tf-num.inc-total{background:#86efac;color:#14532d;border-right:1px solid #94a3b8}.tf-num.exp{background:#ffe4e6;color:#9f1239}.tf-num.exp-total{background:#fda4af;color:#881337;border-right:1px solid #94a3b8}.tf-num.net-total{background:#c7d2fe;border-right:1px solid #cbd5e1}.tf-num.net-total.pos{color:#1e1b4b}.tf-num.net-total.neg{color:#991b1b}.tf-note{background:#f1f5f9;text-align:center}.tf-margin-badge{display:inline-block;background:#4f46e5;color:#fff;padding:2px 8px;border-radius:10px;font-size:10.5px;font-weight:700}.exec-footer{padding:12px 20px;background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px}.exec-footer-left{font-size:11.5px;color:#64748b;font-weight:500}.btn-exec-done{background:#1e293b;color:#fff;border:none;padding:8px 18px;border-radius:10px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}.btn-exec-done:hover{background:#0f172a}@media (max-width: 640px){.exec-header{padding:12px 14px}.exec-title{font-size:15px}.exec-subtabs{padding:5px 6px;gap:4px;display:grid;grid-template-columns:repeat(4,1fr);box-sizing:border-box;width:100%}.exec-tab-btn{padding:6px 2px;font-size:10.5px;gap:2px;border-radius:8px;text-align:center;white-space:nowrap;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;box-sizing:border-box}.exec-tab-btn span.material-symbols-outlined{font-size:17px}.exec-tab-btn .tab-text{font-size:10px;font-weight:700;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.exec-body{padding:12px 10px}.exec-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.exec-kpi-card{padding:10px 12px}.exec-kpi-val{font-size:16px}.ledger-unified-summary-bar{flex-direction:column;align-items:stretch;gap:0;padding:6px 12px;border-radius:12px}.ledger-unified-summary-bar .l-summary-sep{display:none}.ledger-unified-summary-bar .l-summary-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 0}.ledger-unified-summary-bar .l-summary-item:not(:last-child){border-bottom:1px dashed #e2e8f0}.ledger-unified-summary-bar .l-sum-left{display:flex;align-items:center;gap:6px}.ledger-unified-summary-bar .l-sum-right{display:flex;align-items:center;gap:4px}.ledger-unified-summary-bar .l-sum-lbl{font-size:11.5px}.ledger-unified-summary-bar .l-sum-val{font-size:12.5px}.exec-insights-grid,.exec-breakdown-grid{grid-template-columns:1fr}.exec-footer{padding:10px 14px}.exec-footer-left{display:none}.btn-exec-done{width:100%}}.app-toast{pointer-events:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-toast);cursor:pointer}.app-toast.success{background:#f0fdf4;border-color:#bbf7d0;border-left:4px solid #16a34a}.app-toast.success .toast-icon{color:#16a34a}.app-toast.success .toast-text{color:#14532d}.app-toast.warning{background:#fffbeb;border-color:#fde68a;border-left:4px solid #f59e0b}.app-toast.warning .toast-icon{color:#d97706}.app-toast.warning .toast-text{color:#78350f}.app-toast.error{background:#fff1f2;border-color:#fecdd3;border-left:4px solid #e11d48}.app-toast.error .toast-icon{color:#e11d48}.app-toast.error .toast-text{color:#881337}.app-toast.info{background:#eef2ff;border-color:#c7d2fe;border-left:4px solid #6366f1}.app-toast.info .toast-icon{color:#4f46e5}.app-toast.info .toast-text{color:#1e1b4b}.toast-text{font-size:13px;font-weight:600;flex:1}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:5000;align-items:center;justify-content:center;padding:16px}.confirm-modal-box{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;width:100%;max-width:380px;box-shadow:var(--shadow-sheet)}.confirm-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.confirm-icon-box{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--pastel-rose-bg);color:var(--val-exp)}.confirm-title{font-size:15.5px;font-weight:700;color:#0f172a}.confirm-body{font-size:13px;color:var(--text-muted);margin-bottom:18px;line-height:1.45}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.btn-confirm-cancel{background:#fff;border:1px solid var(--border);padding:7px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:600;color:var(--text-main);cursor:pointer}.btn-confirm-ok{background:var(--pastel-lavender-bg);border:1px solid var(--pastel-lavender-border);color:var(--pastel-lavender-text);padding:7px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:700;cursor:pointer}.btn-confirm-ok.danger{background:var(--pastel-rose-bg);border-color:var(--pastel-rose-border);color:var(--val-exp)}.btn-confirm-ok.success{background:#dcfce7;border-color:#86efac;color:#15803d}.btn-confirm-ok.success:hover{background:#bbf7d0}.btn-confirm-ok.warning{background:#fef3c7;border-color:#fde68a;color:#92400e}.btn-confirm-ok.warning:hover{background:#fde68a}.universal-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:4000;align-items:flex-end;justify-content:center}.universal-picker-sheet{width:100%;max-width:440px;background:#fff;border-radius:20px 20px 0 0;padding:16px 18px 28px;box-shadow:var(--shadow-sheet);max-height:80vh;overflow-y:auto}.picker-sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.picker-sheet-title{font-size:15px;font-weight:700;color:#0f172a;display:flex;align-items:center;gap:6px}.picker-option-list{display:flex;flex-direction:column;gap:8px}.picker-option-btn{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-family:inherit;transition:all .15s;text-align:left}.picker-option-btn.active{background:var(--pastel-lavender-bg);border-color:var(--pastel-lavender-border)}.picker-opt-left{display:flex;align-items:center;gap:10px}.picker-opt-icon{width:34px;height:34px;border-radius:8px;background:#fff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--pastel-lavender-text)}.picker-opt-text .title{font-size:13.5px;font-weight:700;color:#0f172a}.picker-opt-text .desc{font-size:11.5px;color:var(--text-muted)}.custom-select-trigger{width:100%;max-width:100%;box-sizing:border-box;min-height:40px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:6px;cursor:pointer;font-family:inherit;transition:all .15s;-webkit-user-select:none;user-select:none;text-align:left}.custom-select-trigger:hover{border-color:var(--pastel-lavender-border);background:#fdfefe}.custom-select-trigger:focus-visible{border-color:var(--pastel-lavender-border);box-shadow:0 0 0 3px #a5b4fc40}.custom-select-trigger .trigger-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1;overflow:hidden}.custom-select-trigger .trigger-icon{font-size:18px;color:var(--pastel-lavender-text);flex-shrink:0}.custom-select-trigger .trigger-label{font-size:13px;font-weight:600;color:#0f172a;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.custom-select-trigger .trigger-arrow{font-size:19px;color:var(--text-muted);flex-shrink:0;transition:transform .15s}.custom-select-trigger:hover .trigger-arrow{color:var(--pastel-lavender-text)}.op-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;box-shadow:0 2px 10px -2px #0f172a0d}.op-header-main-row{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.op-brand{display:flex;align-items:center;gap:12px}.op-brand-icon{width:42px;height:42px;background:linear-gradient(135deg,#4f46e5,#4338ca);border:1px solid #3730a3;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 10px #4f46e540;flex-shrink:0}.op-brand-icon .material-symbols-outlined{font-size:22px}.op-brand-text{display:flex;flex-direction:column;gap:2px}.op-brand-title-wrap{display:flex;align-items:center;gap:8px}.op-brand-title-wrap h1{font-size:17px;font-weight:800;color:#0f172a;margin:0;letter-spacing:-.3px}.badge-dev{background:linear-gradient(135deg,#ede9fe,#e0e7ff);color:#4338ca;border:1px solid #c7d2fe;font-size:10px;font-weight:800;padding:2px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}.op-brand-text p{font-size:12px;color:#64748b;margin:0}.op-user-profile-box{display:flex;align-items:center}.op-user-avatar-img{width:24px;height:24px;border-radius:50%;object-fit:cover;border:1px solid #86efac}.op-user-avatar-icon{width:24px;height:24px;border-radius:8px;background:#ede9fe;color:#4f46e5;display:flex;align-items:center;justify-content:center}.op-user-info-text{display:flex;flex-direction:column;text-align:left;line-height:1.15}.op-user-role-tag{font-size:9.5px;color:#94a3b8;font-weight:600;text-transform:uppercase}.op-user-name{font-size:12.5px;font-weight:700;color:#0f172a}.op-badge-line{font-size:10px;font-weight:800;background:#06c755;color:#fff;padding:2px 7px;border-radius:10px;letter-spacing:.5px}.op-key-icon{font-size:15px;color:#94a3b8}.op-nav-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.btn-op-action{background:#fff;border:1px solid #cbd5e1;color:#334155;padding:7px 14px;border-radius:10px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;transition:all .15s ease;min-height:38px;box-shadow:0 1px 3px #0000000a}.btn-op-action:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.btn-op-action.user-badge{background:#f8fafc;border:1px solid #e2e8f0;padding:5px 12px;cursor:default;gap:8px;box-shadow:none}.btn-op-action.user-badge.interactive{cursor:pointer}.btn-op-action.user-badge.interactive:hover{background:#f1f5f9;border-color:#cbd5e1}.btn-op-action.primary{background:linear-gradient(135deg,#4f46e5,#4338ca);border:1px solid #3730a3;color:#fff;box-shadow:0 2px 6px #4f46e540}.btn-op-action.primary:hover{background:linear-gradient(135deg,#4338ca,#3730a3);box-shadow:0 4px 10px #4f46e559}.btn-op-action.backup{background:#fff;border:1px solid #cbd5e1;color:#1e293b}.btn-op-action.backup:hover{background:#f0fdf4;border-color:#86efac;color:#15803d}.btn-op-action.logout{background:#fff1f2;border:1px solid #fecdd3;color:#e11d48}.btn-op-action.logout:hover{background:#ffe4e6;border-color:#fda4af;color:#be123c}@media (max-width: 900px){.op-header{flex-direction:column;align-items:stretch;padding:12px 14px;gap:12px}.op-header-main-row{justify-content:space-between;width:100%}.op-brand-text p{display:none}.op-nav-actions{display:grid;grid-template-columns:1.4fr 1.2fr 1fr;gap:8px;width:100%}.op-nav-actions .btn-op-action{width:100%;padding:7px 8px;font-size:12px;gap:4px}}.op-table-actions{display:inline-flex;align-items:center;justify-content:center;gap:10px!important}.op-table-actions .btn-op-action{padding:6px 11px;min-width:34px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;box-shadow:0 1px 2px #0000000a}.op-table-actions .btn-op-action:hover{transform:translateY(-1px);box-shadow:0 2px 5px #00000014}.op-mobile-card-actions{display:flex;gap:10px!important;justify-content:flex-end;margin-top:8px}.op-mobile-card-actions .btn-op-action{padding:7px 14px;font-size:12px;border-radius:8px;gap:5px}.op-container{max-width:1400px;margin:0 auto;padding:16px;width:100%}.op-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}.op-kpi-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-sm)}.op-kpi-title{font-size:11.5px;color:var(--text-muted);margin-bottom:4px;font-weight:600;display:flex;align-items:center;justify-content:space-between}.op-kpi-val{font-size:22px;font-weight:800;color:#0f172a}.op-kpi-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.op-tabs-bar{display:flex;gap:6px;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.op-tabs-bar::-webkit-scrollbar{display:none}.op-tab-btn{background:transparent;border:1px solid transparent;color:var(--text-muted);font-family:inherit;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:all .15s}.op-tab-btn:hover{color:var(--text-main);background:#f1f5f9}.op-tab-btn.active{background:#fff;border-color:var(--pastel-lavender-border);color:var(--pastel-lavender-text);box-shadow:var(--shadow-sm);font-weight:700}.op-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.op-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px}.op-card-title{font-size:14.5px;font-weight:700;color:#0f172a;display:flex;align-items:center;gap:6px}.desktop-table-view{display:block;overflow-x:auto}.op-table{width:100%;border-collapse:collapse;font-size:12.5px;text-align:left}.op-table th,.op-table td{padding:9px 10px;border-bottom:1px solid #f1f5f9}.op-table th{background:#f8fafc;color:var(--text-muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.3px}.op-table tr:hover{background:#f8fafc}.mobile-cards-view{display:none;flex-direction:column;gap:10px}.op-mobile-item-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm);transition:all .15s}.op-mobile-item-card:hover{border-color:var(--border-strong)}.op-mobile-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.op-card-user-info{display:flex;align-items:center;gap:10px}.op-card-avatar{width:38px;height:38px;border-radius:10px;background:var(--pastel-lavender-bg);border:1px solid var(--pastel-lavender-border);display:flex;align-items:center;justify-content:center;color:var(--pastel-lavender-text)}.op-card-name-title{font-size:14px;font-weight:700;color:#0f172a;line-height:1.25}.op-card-username-sub{font-size:11.5px;color:var(--text-muted);font-family:monospace}.op-mobile-card-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:11.5px;padding:6px 0;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.op-mobile-card-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.badge-role{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700}.badge-role.r0{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.badge-role.r1{background:var(--pastel-lavender-bg);color:var(--pastel-lavender-text);border:1px solid var(--pastel-lavender-border)}.badge-role.r2{background:var(--pastel-mint-bg);color:var(--pastel-mint-text);border:1px solid var(--pastel-mint-border)}.badge-role.r3{background:#f1f5f9;color:var(--text-muted);border:1px solid var(--border)}.line-user-badge{display:inline-flex;align-items:center;gap:3px;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:700}.branch-tag-pill{background:#fef3c7;border:1px solid #fde68a;color:#92400e;padding:2.5px 8px;border-radius:6px;font-size:11.5px;display:inline-flex;align-items:center;gap:4px;font-weight:700;white-space:nowrap;box-shadow:0 1px 2px #f59e0b0f}.filter-pills-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.filter-pill-btn{background:#fff;border:1px solid var(--border-strong);color:#475569;font-family:inherit;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:all .15s ease;box-shadow:0 1px 2px #0000000a}.filter-pill-btn:hover{background:#f8fafc;color:#0f172a;border-color:#94a3b8}.filter-pill-btn.active{background:#4f46e5;color:#fff;border-color:#4338ca;box-shadow:0 2px 8px #4f46e559;font-weight:700}.filter-pill-btn.pending-pill{background:#fffbeb;border-color:#fde68a;color:#b45309}.filter-pill-btn.pending-pill:hover{background:#fef3c7;border-color:#f59e0b}.filter-pill-btn.pending-pill.active{background:#d97706;border-color:#b45309;color:#fff;box-shadow:0 2px 8px #d9770659}.filter-pill-btn .pill-counter{background:#fef3c7;color:#92400e;border:1px solid #fde68a;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.2}.filter-pill-btn.active .pill-counter{background:#ffffff40;color:#fff;border-color:#fff6}.btn-op-action.approve{background:linear-gradient(135deg,#10b981,#059669);color:#fff!important;border:1px solid #047857;box-shadow:0 2px 6px #10b9814d;font-weight:700;padding:5px 12px;font-size:12px;border-radius:8px;display:inline-flex;align-items:center;gap:5px;transition:all .15s ease;white-space:nowrap}.btn-op-action.approve:hover{background:linear-gradient(135deg,#059669,#047857);border-color:#065f46;color:#fff!important;box-shadow:0 4px 10px #10b98166;transform:translateY(-1px)}.btn-op-action.approve .material-symbols-outlined{color:#fff!important;font-size:16px;line-height:1}.badge-status-btn{display:inline-flex;align-items:center;gap:4.5px;padding:3.5px 9px;border-radius:6px;font-size:11.5px;font-weight:700;cursor:pointer;border:1px solid transparent;font-family:inherit;transition:all .15s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.badge-status-btn.paid{background:#dcfce7;border-color:#86efac;color:#15803d;box-shadow:0 1px 2px #1665340f}.badge-status-btn.paid:hover:not(:disabled){background:#bbf7d0;border-color:#4ade80;box-shadow:0 2px 6px #1665342e;transform:translateY(-1px)}.badge-status-btn.pending{background:#fff1f2;border-color:#fecdd3;color:#e11d48;box-shadow:0 1px 2px #e11d4814}.badge-status-btn.pending:hover:not(:disabled){background:#ffe4e6;border-color:#fda4af;box-shadow:0 2px 6px #e11d4833;transform:translateY(-1px)}.badge-status-btn:disabled{cursor:default;opacity:.85}.branch-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px;max-height:180px;overflow-y:auto}.branch-check-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#0f172a;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px 8px;border-radius:4px;background:#fff;border:1px solid var(--border);transition:all .1s}.branch-check-item:hover{border-color:var(--pastel-lavender-border);background:#fdfefe}.branch-check-item input[type=checkbox]{accent-color:#6366f1;cursor:pointer;width:15px;height:15px}@media (max-width: 768px){.desktop-table-view{display:none!important}.mobile-cards-view{display:flex!important}.branch-checkbox-grid{grid-template-columns:1fr 1fr}.payroll-desktop-table-wrapper{display:none!important}.payroll-mobile-cards-view{display:flex!important}.payroll-period-bar{padding:12px 14px;gap:10px;border-radius:14px}.payroll-period-left{width:100%;flex-direction:column;align-items:stretch;gap:8px}.period-toggle-group{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px}.period-btn{justify-content:center;padding:8px 6px;border-radius:8px}.period-btn .period-num-icon{font-size:17px}.period-btn-content{text-align:center}.payroll-period-badge{width:100%;justify-content:center;padding:6px 10px;font-size:11.5px}.payroll-period-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn-payroll-copy,.btn-payroll-add{width:100%;justify-content:center;padding:9px 8px;font-size:12px}.payroll-stats-row{grid-template-columns:1fr 1fr;gap:8px}.p-stat-card{padding:10px 12px}.p-stat-val{font-size:17px}.payroll-search-toolbar{flex-direction:column;align-items:stretch;gap:8px}.payroll-search-input-box,.payroll-branch-select-box{width:100%;min-width:0}.p-mcard-breakdown-grid{grid-template-columns:1fr;gap:4px}.form-row-2,.form-row-3{grid-template-columns:1fr!important;gap:6px}.modal-overlay{padding:10px;align-items:center}.modal-box{padding:16px 14px calc(24px + env(safe-area-inset-bottom,12px)) 14px;max-height:85vh;max-height:85dvh;border-radius:var(--radius-lg);scroll-padding-bottom:95px}.modal-sticky-footer,.modal-footer{bottom:calc(-24px - env(safe-area-inset-bottom,12px));padding:10px 0 12px}}.mobile-bottom-nav-bar{display:none}@media (max-width: 768px){.mobile-bottom-nav-bar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;background:linear-gradient(180deg,#f8fafc,#edf2f7 45%,#e2e8f0);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1.5px solid #cbd5e1;box-shadow:0 -6px 20px -2px #47556924,inset 0 1px #fffffff2;z-index:1000;padding:6px 6px calc(8px + env(safe-area-inset-bottom,6px)) 6px;gap:6px}.portal-container{padding-bottom:calc(115px + env(safe-area-inset-bottom,24px))!important}.tab-content-anim-pane{padding-bottom:calc(85px + env(safe-area-inset-bottom,20px))!important}.mobile-view-container,.mobile-views-container,.matrix-table-card,.payroll-container,.analytics-container,.op-container{margin-bottom:calc(75px + env(safe-area-inset-bottom,20px))!important}.mobile-bottom-spacer{display:block!important;height:calc(85px + env(safe-area-inset-bottom,20px))!important;width:100%!important;pointer-events:none!important;flex-shrink:0!important}.mobile-bottom-nav-item{background:linear-gradient(135deg,#fff,#f1f5f9);border:1px solid #cbd5e1;border-radius:10px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;font-family:inherit;color:#475569;box-shadow:0 1px 3px #0000000a;transition:all .18s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.mobile-bottom-nav-item:active{transform:scale(.94);background:#e2e8f0}.mobile-bottom-nav-item .nav-icon-box{width:32px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#e2e8f0;transition:all .2s ease}.mobile-bottom-nav-item .material-symbols-outlined{font-size:19px;color:#475569;transition:color .15s ease,transform .15s ease}.mobile-bottom-nav-item .nav-label{font-size:10px;font-weight:700;line-height:1.15;letter-spacing:-.2px;white-space:nowrap;color:#334155;transition:color .15s ease}.mobile-bottom-nav-item.active{background:linear-gradient(135deg,#4f46e5,#6366f1);border-color:#4338ca;box-shadow:0 3px 10px #4f46e559}.mobile-bottom-nav-item.active .nav-icon-box{background:#ffffff38}.mobile-bottom-nav-item.active .material-symbols-outlined{color:#fff;font-weight:700;transform:scale(1.08)}.mobile-bottom-nav-item.active .nav-label{color:#fff;font-weight:800}}.modal-overlay,.day-sheet-overlay,.picker-overlay,.exec-summary-modal-overlay{z-index:2500!important}.mobile-bottom-spacer{display:none}.tab-content-anim-pane{animation:tabFadeSlideUp .28s cubic-bezier(.16,1,.3,1) forwards}@keyframes tabFadeSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
