:root{--color-primary:#0d9488;--color-primary-hover:#0f766e;--color-primary-light:#f0fdfa;--color-primary-rgb:13,148,136;--color-success:#28a745;--color-warning:#ffc107;--color-warning-dark:#d39e00;--color-danger:#dc3545;--color-info:#17a2b8;--color-gray:#6c757d;--color-purple:#9b59b6;--color-orange:#e67e22;--color-teal:#1abc9c;--color-indigo:#3f51b5;--color-pink:#e91e63;--color-tax-purple:#6c63ff;--color-text-dark:#1a1a2e;--color-text-body:#333;--color-text-secondary:#5f6368;--color-text-muted:#6c757d;--color-text-label:#495057;--color-bg:#f5f7fa;--color-card:#fff;--color-border:#dee2e6;--color-border-light:#f0f0f0;--color-disabled:#bdbdbd;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 4px 12px #0000001a;--radius:12px;--radius-sm:8px;--radius-xs:6px;--transition:all .2s ease;--bs-primary:#0d9488;--bs-primary-rgb:13,148,136;--bs-body-bg:#f5f7fa;--bs-body-color:#333;--bs-border-color:#dee2e6;--bs-link-color:#0d9488;--bs-link-hover-color:#0f766e}body{background-color:var(--color-bg);color:var(--color-text-body);font-size:.875rem}a{color:var(--color-primary)}a:hover{color:var(--color-primary-hover)}.text-primary{color:var(--color-primary)!important}.bg-primary{background-color:var(--color-primary)!important}.border-primary{border-color:var(--color-primary)!important}.btn{border-radius:var(--radius-xs);transition:var(--transition);padding:.5rem 1rem;font-size:.875rem;font-weight:500}.btn-sm{padding:.375rem .75rem;font-size:.8rem}.btn-primary{--bs-btn-bg:var(--color-primary);--bs-btn-border-color:var(--color-primary);--bs-btn-hover-bg:var(--color-primary-hover);--bs-btn-hover-border-color:var(--color-primary-hover);--bs-btn-active-bg:#115e59;--bs-btn-disabled-bg:var(--color-primary)}.btn-primary:hover{box-shadow:0 4px 8px rgba(var(--color-primary-rgb),.3);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-outline-primary{--bs-btn-color:var(--color-primary);--bs-btn-border-color:var(--color-primary);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--color-primary);--bs-btn-hover-border-color:var(--color-primary)}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#dee2e6;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-color:#333}.btn-action{width:36px;height:36px;color:var(--color-gray);transition:var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.btn-action:hover{color:var(--color-text-body);background:#0000000d}.btn-create{color:#3c4043;width:100%;transition:var(--transition);background:#fff;border:1px solid #dadce0;border-radius:24px;padding:.875rem 1.5rem;font-size:.9375rem;font-weight:500;box-shadow:0 1px 2px #3c40434d,0 1px 3px #3c404326}.btn-create:hover{background:#f0fdfa;box-shadow:0 1px 3px #3c40434d,0 4px 8px #3c404326}.form-label{color:var(--color-text-label);margin-bottom:.375rem;font-size:.875rem;font-weight:500}.form-control,.form-select{border-radius:var(--radius-xs);border:1px solid var(--color-border);padding:.5rem .75rem;font-size:.875rem}.form-control:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.15)}.card{background:var(--color-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:var(--transition);border:none}.card.hover-lift:hover,.supplier-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card .table-responsive{box-shadow:none;background:0 0;border-radius:0}.card-header{border-bottom:1px solid var(--color-border);background:#fff;padding:1rem 1.25rem;font-weight:600}.card-body{padding:1.25rem}.kpi-card{border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--color-card);border:none;padding:1.25rem 1.25rem 1.25rem 1.5rem;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.kpi-card:before{content:"";border-radius:var(--radius)0 0 var(--radius);width:4px;position:absolute;top:0;bottom:0;left:0}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-card.kpi-green:before{background:var(--color-success)}.kpi-card.kpi-green{background:linear-gradient(90deg,#28a74514,#fff 25%)}.kpi-card.kpi-yellow:before{background:var(--color-warning)}.kpi-card.kpi-yellow{background:linear-gradient(90deg,#ffc1071f,#fff 25%)}.kpi-card.kpi-red:before{background:var(--color-danger)}.kpi-card.kpi-red{background:linear-gradient(90deg,#dc354514,#fff 25%)}.kpi-card.kpi-blue:before{background:var(--color-info)}.kpi-card.kpi-blue{background:linear-gradient(90deg,#17a2b814,#fff 25%)}.kpi-card.kpi-gray:before{background:var(--color-gray)}.kpi-card.kpi-gray{background:linear-gradient(90deg,#6c757d14,#fff 25%)}.kpi-card.kpi-purple:before{background:var(--color-purple)}.kpi-card.kpi-purple{background:linear-gradient(90deg,#9b59b614,#fff 25%)}.kpi-card.kpi-orange:before{background:var(--color-orange)}.kpi-card.kpi-orange{background:linear-gradient(90deg,#e67e2214,#fff 25%)}.kpi-card.kpi-teal:before{background:var(--color-primary)}.kpi-card.kpi-teal{background:linear-gradient(to right,rgba(var(--color-primary-rgb),.08),#fff 25%)}.kpi-card.kpi-indigo:before{background:var(--color-indigo)}.kpi-card.kpi-indigo{background:linear-gradient(90deg,#3f51b514,#fff 25%)}.kpi-card.kpi-pink:before{background:var(--color-pink)}.kpi-card.kpi-pink{background:linear-gradient(90deg,#e91e6314,#fff 25%)}.kpi-value{color:var(--color-text-body);margin:0;font-size:1.5rem;font-weight:700;line-height:1.2}.kpi-label{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin:0;font-size:.7rem;font-weight:500}.kpi-mini{background:#fff;border-radius:10px;align-items:center;gap:.75rem;padding:1rem;display:flex;box-shadow:0 1px 3px #00000014}.kpi-mini-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.kpi-mini-value{color:var(--color-text-body);font-size:1.25rem;font-weight:700;line-height:1.2}.table-responsive{background:var(--color-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.table{margin-bottom:0}.table thead th{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);border-bottom:2px solid var(--color-border);background:#f8f9fa;padding:1rem .75rem;font-size:.7rem;font-weight:600}.table tbody td{vertical-align:middle;border-bottom:1px solid var(--color-border-light);padding:.875rem .75rem}.table tbody tr{transition:background-color .1s}.table tbody tr:hover{background-color:rgba(var(--color-primary-rgb),.03)!important}.table tbody tr:last-child td{border-bottom:none}.badge{border-radius:50px;padding:.375rem .625rem;font-size:.75rem;font-weight:500}.badge.bg-success{color:#28a745!important;background-color:#28a74526!important}.badge.bg-warning{color:#d39e00!important;background-color:#ffc10726!important}.badge.bg-danger{color:#dc3545!important;background-color:#dc354526!important}.badge.bg-info{color:#17a2b8!important;background-color:#17a2b826!important}.badge.bg-secondary{color:#6c757d!important;background-color:#6c757d26!important}.badge.bg-primary{background-color:rgba(var(--color-primary-rgb),.15)!important;color:var(--color-primary)!important}.dep-badge{border-radius:4px;padding:.2rem .5rem;font-size:.75rem;font-weight:500}.dep-badge.positive{color:#28a745;background:#28a7451a}.dep-badge.negative{color:#dc3545;background:#dc35451a}.section-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;background:#f8f9fa;border-radius:4px;align-items:center;gap:8px;margin:1.25rem 0 .75rem;padding:.75rem 1rem;font-size:.75rem;font-weight:600;display:flex}.section-title:after{content:"";background:var(--color-border);flex:1;height:1px;margin-left:12px}.filter-container{border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;padding:.75rem 1rem}.filter-label{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:.375rem;font-size:.7rem;font-weight:500}.chip{border:1px solid var(--color-border);color:var(--color-gray);cursor:pointer;transition:var(--transition);background:#fff;border-radius:50px;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.chip .count{background:#0000001a;border-radius:10px;padding:.125rem .375rem;font-size:.75rem}.chip.active .count{background:#ffffff40}.view-toggle{border-radius:var(--radius-sm);background:#f0f0f0;gap:.25rem;padding:.25rem;display:flex}.view-toggle button{border-radius:var(--radius-xs);color:var(--color-gray);transition:var(--transition);background:0 0;border:none;padding:.375rem .75rem}.view-toggle button.active{color:var(--color-primary);background:#fff;box-shadow:0 1px 2px #0000001a}.sidebar{z-index:100;background:#fff;border-right:1px solid #e0e0e0;width:260px;min-height:100vh;transition:transform .3s;position:fixed;top:0;left:0;overflow:hidden auto}.sidebar .nav-link{color:#202124;border-radius:0 20px 20px 0;align-items:center;gap:.75rem;height:40px;margin:1px 12px 1px 0;padding:0 1.25rem;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.sidebar .nav-link:hover{color:#202124;background:#0000000a}.sidebar .nav-link.active{color:var(--color-primary-hover);background:var(--color-primary-light);font-weight:600}.sidebar .nav-link .icon{width:20px;height:20px;color:var(--color-text-secondary);flex-shrink:0}.sidebar .nav-link:hover .icon{color:#202124}.sidebar .nav-link.active .icon{color:var(--color-primary)}.sidebar-divider{background:#dadce0;height:1px;margin:.5rem 1rem}.sidebar-logo{color:#202124;letter-spacing:-.5px;font-size:1.5rem;font-weight:600}.sidebar-version{color:var(--color-text-secondary);font-size:.75rem}.sidebar-search{border-radius:var(--radius-sm);background:#f1f3f4;border:none;width:100%;padding:.5rem .75rem;font-size:.875rem}.sidebar-search:focus{box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2);background:#fff;outline:none}.sidebar-footer{border-top:1px solid #e0e0e0;padding:.75rem 0}.main-content{background-color:var(--color-bg);flex-direction:column;min-height:100vh;margin-left:260px;display:flex}.top-header{background:var(--color-card);border-bottom:1px solid var(--color-border);align-items:center;height:56px;padding:0 1.5rem;display:flex}.page-header{padding:1.5rem 0}.page-header h1{color:var(--color-text-dark);margin:0;font-size:1.5rem;font-weight:600}.list-group{border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.list-group-item{border:none;border-bottom:1px solid var(--color-border-light);background:var(--color-card);padding:1rem 1.25rem}.list-group-item:last-child{border-bottom:none}.list-group-item-success{background:linear-gradient(90deg,#28a74514,#fff 20%);border-left:4px solid #28a745}.list-group-item-warning{background:linear-gradient(90deg,#ffc1071f,#fff 20%);border-left:4px solid #ffc107}.list-group-item-danger{background:linear-gradient(90deg,#dc354514,#fff 20%);border-left:4px solid #dc3545}.list-group-item-info{background:linear-gradient(90deg,#17a2b814,#fff 20%);border-left:4px solid #17a2b8}.modal-content{border-radius:var(--radius);box-shadow:var(--shadow-md);border:none}.modal-header{border-bottom:1px solid var(--color-border-light);padding:1.25rem}.modal-title{font-weight:600}.modal-body{padding:1.25rem}.modal-footer{border-top:1px solid var(--color-border-light);padding:1rem 1.25rem}.toast{z-index:1030;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);color:#fff;border:none;position:fixed;bottom:15px;right:15px}.toast-success{color:#fff;border-radius:var(--radius-sm);z-index:9999;background:#198754;padding:15px 25px;animation:.3s toastSlideIn;position:fixed;top:20px;right:20px;box-shadow:0 4px 12px #00000026}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.pagination{gap:.25rem}.page-link{border-radius:var(--radius-xs);border:1px solid var(--color-border);color:var(--color-text-muted);padding:.5rem .875rem}.page-link:hover{border-color:var(--color-primary);color:var(--color-primary);background:#f8f9fa}.page-item.active .page-link{background-color:var(--color-primary);border-color:var(--color-primary)}.alert{border-radius:var(--radius);border:none}.dropdown-menu{border-radius:var(--radius-sm);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.dropdown-item.active,.dropdown-item:active{background-color:var(--color-primary-light);color:var(--color-primary-hover)}.suppliers-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;display:grid}.supplier-card{border-radius:var(--radius);box-shadow:var(--shadow-sm);border-left:4px solid var(--cat-color,#6c757d);cursor:pointer;transition:var(--transition);background:#fff;padding:1.25rem}.supplier-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.supplier-card.inactive{opacity:.7;border-left-color:var(--color-disabled);background:#f5f5f5}.supplier-name{color:var(--color-text-dark);font-size:1rem;font-weight:600;line-height:1.3}.supplier-inn{color:var(--color-text-muted);font-size:.8rem}.supplier-tag{background:var(--color-bg);border-radius:4px;padding:.2rem .5rem;font-size:.7rem}.supplier-contact{color:#444;font-size:.85rem}.supplier-stats{border-top:1px solid var(--color-border);margin-top:auto;padding-top:.75rem;display:flex}.supplier-stat-value{color:var(--color-text-dark);font-size:.9rem;font-weight:600}.supplier-stat-label{color:var(--color-text-muted);font-size:.7rem}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);cursor:pointer;transition:var(--transition)}.upload-zone:hover{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.02)}.upload-zone-content{text-align:center;color:var(--color-text-muted);padding:1.5rem}.chart-container{border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;margin-bottom:1.5rem;padding:1.25rem}.chart-h-300{height:300px}.chart-h-400{height:400px}.ap-widget{border-radius:var(--radius-sm);border-left:4px solid var(--color-danger);background:#ffd8d8;padding:1rem}.ap-total{color:var(--color-danger);font-size:1.5rem;font-weight:700}.ap-breakdown{gap:1rem;font-size:.8rem;display:flex}.tax-widget{border-radius:var(--radius-sm);border-left:4px solid var(--color-tax-purple);background:#c6c6ff;padding:1rem}.tax-count-badge{background:var(--color-danger);color:#fff;border-radius:50px;padding:.125rem .5rem;font-size:.7rem}.tax-next-item{border-radius:var(--radius-xs);background:#fff;padding:.625rem}.auth-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{background:#fff;border-radius:16px;width:100%;max-width:440px;padding:2.5rem;animation:.4s ease-out slideUp;box-shadow:0 8px 24px #0000001f}.auth-card .auth-logo-icon{background:linear-gradient(135deg,var(--color-primary),#14b8a6);border-radius:var(--radius);color:#fff;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:1rem;font-size:1.5rem;display:inline-flex}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.spinner-border.text-primary{color:var(--color-primary)!important}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#dadce0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#bdc1c6}.text-teal{color:var(--color-primary)!important}.text-teal-dark{color:#115e59!important}.bg-teal-50{background-color:var(--color-primary-light)!important}.bg-teal{background-color:var(--color-primary)!important}.hover-lift{transition:transform .2s,box-shadow .2s}.hover-lift:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}@media (max-width:767.98px){.sidebar{z-index:9999;width:260px;box-shadow:none;transform:translate(-100%)}.sidebar.show{box-shadow:var(--shadow-md);transform:translate(0)}.main-content{margin-left:0}.toast{bottom:1rem;left:1rem;right:1rem}.suppliers-grid{grid-template-columns:1fr}}@media (max-width:399.98px){.sidebar{width:100%}}@media (min-width:768px) and (max-width:991.98px){.sidebar{width:220px}.main-content{margin-left:220px}}@media (min-width:1200px){.sidebar{width:280px}.main-content{margin-left:280px}}@supports (padding:max(0px)){@media (max-width:767.98px){.sidebar-header{padding-top:calc(1rem + env(safe-area-inset-top,0px))}}}@media print{.navbar,.sidebar,.modal{display:none!important}.main-content{margin-left:0!important;padding:0!important}.card{box-shadow:none!important}body{background:#fff!important}}
