:root{--primary-color:#2b6cb0;--primary-hover:#1e4e8c;--bg-color:#f8fafc;--surface-color:#fff;--text-primary:#1a202c;--text-secondary:#64748b;--success-color:#10b981;--danger-color:#ef4444;--warning-color:#f59e0b;--border-color:#e2e8f0;--radius:12px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -2px #00000006;--sidebar-width:260px}body.dark-mode{--bg-color:#1a202c;--surface-color:#2d3748;--text-primary:#f7fafc;--text-secondary:#a0aec0;--border-color:#4a5568}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;transition:background-color .3s,color .3s}a{color:inherit;text-decoration:none}ul{list-style:none}.app-container{height:100vh;display:flex;overflow:hidden}.main-content{flex-direction:column;flex-grow:1;display:flex;overflow-y:auto}.content-body{padding:1rem 1.5rem}.card{background:var(--surface-color);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);word-wrap:break-word;overflow-wrap:break-word;padding:1.5rem;transition:transform .2s,box-shadow .2s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}h1{color:var(--text-primary);letter-spacing:-.025em;margin-bottom:.5rem;font-size:1.5rem;font-weight:600}h2{letter-spacing:-.015em;margin-bottom:.75rem;font-size:1.25rem;font-weight:600}h3{margin-bottom:.5rem;font-size:1.125rem;font-weight:600}p{color:var(--text-secondary);margin-bottom:1rem}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-success{background:var(--success-color);color:#fff}.btn-danger{background:var(--danger-color);color:#fff}.btn-outline{border:1px solid var(--border-color);color:var(--text-primary);background:0 0}.btn-outline:hover{background:var(--border-color)}.form-group{margin-bottom:1rem}.form-label{color:var(--text-primary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-input{border:1px solid var(--border-color);background:var(--surface-color);width:100%;color:var(--text-primary);border-radius:8px;padding:.625rem .75rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2b6cb033}.table-container{width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border-color);word-break:break-word;max-width:300px;padding:1rem}.table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;background:var(--surface-color);padding-top:.75rem;padding-bottom:.75rem;font-size:.7rem;font-weight:600}body.dark-mode .table th{background:var(--surface-color)}.table tr:hover td,body.dark-mode .table tr:hover td{background:var(--bg-color)}.text-success{color:var(--success-color)}.text-danger{color:var(--danger-color)}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.w-full{width:100%}.h-full{height:100%}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background-color:#0f172aa6;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--surface-color);border:1px solid var(--border-color);border-radius:20px;max-width:90vw;max-height:90vh;padding:2.5rem;animation:.3s cubic-bezier(.16,1,.3,1) modalScaleUp;position:relative;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-close{background:var(--bg-color);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:1.25rem;right:1.25rem}.modal-close:hover{background:var(--border-color);color:var(--danger-color);transform:rotate(90deg)}.sidebar{width:var(--sidebar-width);background:var(--surface-color);border-right:1px solid var(--border-color);flex-direction:column;transition:background .3s;display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);padding:1.5rem}.logo-container{align-items:center;gap:.75rem;display:flex}.logo-container h2{letter-spacing:1.5px;margin:0;font-size:1.75rem;font-weight:800}.brand-logo-text{background:linear-gradient(90deg, var(--primary-color), #4fd1c5);-webkit-text-fill-color:transparent;text-shadow:2px 2px 4px #0000001a;-webkit-background-clip:text;background-clip:text}.sidebar-nav{flex-direction:column;flex-grow:1;gap:.5rem;padding:1.5rem 1rem;display:flex}.nav-item{border-radius:var(--radius);color:var(--text-secondary);align-items:center;gap:1rem;padding:.875rem 1rem;font-weight:500;transition:all .2s;display:flex}.nav-item:hover{color:var(--primary-color);background:#2b6cb00d}.nav-item.active{background:var(--primary-color);color:#fff;box-shadow:var(--shadow-md)}.sidebar-footer{border-top:1px solid var(--border-color);padding:1.5rem}.top-header{background:var(--surface-color);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:72px;padding:0 2rem;transition:background .3s;display:flex}.header-actions{align-items:center;gap:1.5rem;display:flex}.icon-btn{border:1px solid var(--border-color);cursor:pointer;width:40px;height:40px;color:var(--text-secondary);background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.icon-btn:hover{background:var(--border-color);color:var(--text-primary)}.user-profile{cursor:pointer;align-items:center;gap:.75rem;display:flex}.avatar{background:var(--primary-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-weight:700;display:flex}.user-name{color:var(--text-primary);font-weight:600}.custom-select-wrapper{width:100%;position:relative}.custom-select-trigger{border:1px solid var(--border-color);background:var(--surface-color);width:100%;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:space-between;align-items:center;padding:.625rem .75rem;font-family:inherit;font-size:.875rem;transition:all .2s;display:flex}.custom-select-trigger:hover{border-color:var(--primary-color)}.custom-select-trigger.open{border-color:var(--primary-color);border-bottom-right-radius:0;border-bottom-left-radius:0;box-shadow:0 0 0 3px #2b6cb033}.custom-select-icon{color:var(--text-secondary);transition:transform .2s}.custom-select-trigger.open .custom-select-icon{transform:rotate(180deg)}.custom-select-dropdown{background:var(--surface-color);border:1px solid var(--border-color);box-shadow:var(--shadow-md);z-index:1010;transform-origin:top;border-top:none;border-bottom-right-radius:8px;border-bottom-left-radius:8px;max-height:250px;animation:.2s ease-out slideDown;position:absolute;top:100%;left:0;right:0;overflow-y:auto}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{cursor:pointer;color:var(--text-primary);padding:.75rem 1rem;font-size:.875rem;transition:background .15s,color .15s}.custom-select-option:hover{color:var(--primary-color);background:#2b6cb00d}.custom-select-option.selected{color:var(--primary-color);background:#2b6cb01a;font-weight:500}.action-menu-wrapper{display:inline-block}.action-menu-trigger{cursor:pointer;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.action-menu-trigger:hover,.action-menu-trigger.active{background:var(--bg-secondary);color:var(--primary-color);border-color:var(--border-color)}.action-menu-dropdown-portal{background:var(--surface-color);border:1px solid var(--border-color);border-radius:10px;min-width:180px;padding:6px;animation:.15s ease-out slideDown;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.action-menu-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;font-size:.875rem;transition:all .15s;display:flex}.action-menu-item:hover{background:var(--bg-secondary)}.action-menu-icon{opacity:.8;justify-content:center;align-items:center;display:flex}.action-menu-item.danger:hover{color:var(--danger-color);background:#e53e3e14}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.75rem;display:flex;position:fixed;top:1.5rem;right:1.5rem}.toast{pointer-events:auto;background:var(--surface-color);border-left:4px solid var(--primary-color);border-radius:12px;align-items:center;gap:.875rem;min-width:320px;max-width:450px;padding:1rem 1.25rem;animation:.3s cubic-bezier(.16,1,.3,1) slideInRight;display:flex;position:relative;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-success{border-left-color:#10b981}.toast-error{border-left-color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-icon{justify-content:center;align-items:center;display:flex}.toast-success .toast-icon{color:#10b981}.toast-error .toast-icon{color:#ef4444}.toast-warning .toast-icon{color:#f59e0b}.toast-info .toast-icon{color:#3b82f6}.toast-message{color:var(--text-primary);flex:1;font-size:.875rem;font-weight:500;line-height:1.4}.toast-close{cursor:pointer;color:var(--text-secondary);opacity:.5;background:0 0;border:none;border-radius:4px;padding:4px;transition:opacity .2s}.toast-close:hover{opacity:1;background:var(--bg-secondary)}.supplier-detail-page{max-width:1600px;margin:0 auto;padding:.5rem 0}.detail-nav{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.detail-actions{align-items:center;gap:12px;display:flex}.btn-back{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;transition:all .2s;display:flex}.btn-back:hover{background:var(--bg-secondary);color:var(--primary-color)}.supplier-header-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:24px;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:2.5rem;display:flex;box-shadow:0 10px 15px -3px #0000000d}.header-main{align-items:center;gap:2rem;display:flex}.supplier-avatar{background:linear-gradient(135deg, var(--primary-color), #4a90e2);color:#fff;border-radius:20px;justify-content:center;align-items:center;width:80px;height:80px;display:flex;box-shadow:0 10px 15px -3px #2b6cb04d}.supplier-title-info h1{letter-spacing:-.025em;margin-bottom:.75rem;font-size:2.25rem;font-weight:900}.contact-pills{gap:1rem;display:flex}.contact-pills .pill{color:#475569;background:#f1f5f9;border-radius:100px;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;font-weight:600;display:flex}.financial-overview{align-items:center;gap:2rem;display:flex}.stat-box{text-align:right}.stat-box label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.75rem;font-weight:700;display:block}.stat-box .value{color:var(--text-primary);font-size:1.5rem;font-weight:800}.stat-box .value.pos{color:var(--success-color);justify-content:flex-end;align-items:center;gap:8px;display:flex}.stat-box .value.neg{color:var(--danger-color);justify-content:flex-end;align-items:center;gap:8px;display:flex}.stat-divider{background:#e2e8f0;width:1px;height:40px}.detail-content-grid{grid-template-columns:320px 1fr;gap:2rem;display:grid}.left-panel{flex-direction:column;gap:2rem;display:flex}.card-header{align-items:center;gap:12px;margin-bottom:1.5rem;display:flex}.card-header h3{margin:0;font-size:1.125rem;font-weight:700}.filter-inputs{flex-direction:column;gap:1.25rem;display:flex}.supply-list{flex-direction:column;gap:.75rem;display:flex}.supply-item{color:#475569;background:#f8fafc;border-radius:12px;align-items:center;gap:10px;padding:.75rem 1rem;font-size:.875rem;font-weight:600;display:flex}.supply-item .dot{background:var(--primary-color);border-radius:50%;width:6px;height:6px}.ledger-card{padding:0;overflow:hidden}.ledger-card .card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;margin:0;padding:1.5rem 2rem}.count-badge{color:#475569;background:#f1f5f9;border-radius:100px;padding:4px 10px;font-size:.75rem;font-weight:700}.ledger-card .table-container{padding:0}.date-cell{flex-direction:column;display:flex}.date-cell .main-date{color:var(--text-primary);font-weight:700}.date-cell .sub-date{color:var(--text-secondary);font-size:.75rem}.type-tag{text-transform:uppercase;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.type-tag.income{color:#166534;background:#dcfce7}.type-tag.expense{color:#991b1b;background:#fee2e2}.detail-cell .cat{color:var(--text-primary);font-weight:600}.detail-cell .desc{color:var(--text-secondary);font-size:.8125rem}.amount-cell{font-size:1rem;font-weight:800}.loading-state{height:60vh;color:var(--text-secondary);justify-content:center;align-items:center;font-weight:600;display:flex}
