*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;background:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.layout{display:flex;min-height:100vh;background:#f5f5f5;position:relative}.mobile-menu-btn{display:none;position:fixed;top:16px;left:16px;z-index:1001;background:#fff;border:1px solid #ddd;border-radius:6px;padding:12px;font-size:20px;cursor:pointer;box-shadow:0 2px 8px #0000001a}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:999}.sidebar{width:260px;background:#fff;box-shadow:2px 0 8px #0000001a;display:flex;flex-direction:column;position:fixed;height:100vh;z-index:1000;transition:transform .3s ease}.sidebar-header{padding:24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.sidebar-header h2{margin:0;color:#333;font-size:20px}.sidebar-close{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:32px;height:32px;line-height:32px}.sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}.nav-item{display:block;padding:12px 24px;color:#666;text-decoration:none;transition:all .2s}.nav-item:hover{background:#f5f5f5;color:#667eea}.nav-item.active{background:#667eea;color:#fff}.sidebar-footer{padding:16px 24px;border-top:1px solid #e0e0e0}.user-info{margin-bottom:12px}.user-name{margin:0 0 4px;font-weight:500;color:#333;font-size:14px}.user-email{margin:0;color:#666;font-size:12px;word-break:break-word}.logout-btn{width:100%;padding:8px;background:#fee;color:#c33;border:1px solid #fcc;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.logout-btn:hover{background:#fcc}.main-content{flex:1;overflow-y:auto;margin-left:260px;min-height:100vh}@media(max-width:768px){.mobile-menu-btn,.sidebar-overlay{display:block}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close{display:block}.main-content{margin-left:0;padding-top:60px}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.page-header h1{font-size:24px}.form-row,.stats-grid,.compras-grid,.fornecedores-grid{grid-template-columns:1fr}.compra-actions,.fornecedor-actions{flex-direction:column}.compra-actions button,.fornecedor-actions button{width:100%}}@media(min-width:769px)and (max-width:1024px){.sidebar{width:220px}.main-content{margin-left:220px}.form-row,.compras-grid,.fornecedores-grid{grid-template-columns:repeat(2,1fr)}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:30px}.login-header h1{margin:0 0 10px;color:#333;font-size:28px}.login-header p{margin:0;color:#666;font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group input{padding:12px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.login-button{padding:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:opacity .2s}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:12px;background-color:#fee;color:#c33;border-radius:6px;font-size:14px;text-align:center}.dashboard{padding:16px;max-width:1400px;margin:0 auto}@media(min-width:768px){.dashboard{padding:24px}}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.dashboard-header h1{margin:0;color:#333;font-size:32px}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:6px;font-weight:500;transition:opacity .2s}.btn-primary:hover{opacity:.9}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:#fff;padding:24px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.stat-card h3{margin:0 0 12px;color:#666;font-size:14px;font-weight:500;text-transform:uppercase}.stat-number{margin:0;color:#333;font-size:36px;font-weight:700}.recent-compras{background:#fff;padding:24px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.recent-compras h2{margin:0 0 20px;color:#333;font-size:24px}.empty-state{text-align:center;color:#666;padding:40px}.compra-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;display:flex;flex-direction:column;transition:all .3s ease;border-left:4px solid transparent;cursor:pointer}.compra-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.compra-header h3{margin:0;color:#333;font-size:18px}.badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.badge-nacional{background:#e3f2fd;color:#1976d2}.badge-importacao{background:#f3e5f5;color:#7b1fa2}.loading{text-align:center;padding:40px;color:#666}.compras-page{padding:16px;max-width:1400px;margin:0 auto}@media(min-width:768px){.compras-page{padding:24px}}.filters{display:flex;gap:12px;margin-bottom:24px}.filter-select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff}.compras-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.compra-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;display:flex;flex-direction:column;transition:all .3s ease;border-left:4px solid transparent}.compra-card.atrasado{border-left-color:#dc3545;background:#fff5f5;box-shadow:0 2px 12px #dc354533}.compra-card.atrasado .compra-header{border-bottom-color:#fcc}.compra-card.atrasado .compra-body p strong{color:#dc3545}.compra-card.proximo-vencer{border-left-color:#ffc107;background:#fffbf0;box-shadow:0 2px 12px #ffc10733}.compra-card.proximo-vencer .compra-header{border-bottom-color:#ffe082}.compra-card.proximo-vencer .compra-body p strong{color:#f57c00}.compra-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.compra-numero-venda{margin:4px 0 0;font-size:12px;color:#666;font-style:italic}.compra-link{text-decoration:none;color:inherit}.compra-link h3{margin:0;color:#333;font-size:18px}.compra-link:hover h3{color:#667eea}.compra-body{flex:1;margin-bottom:16px}.compra-body p{margin:8px 0;color:#666;font-size:14px}.compra-body strong{color:#333}.compra-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn-secondary{padding:8px 16px;background:#f5f5f5;color:#333;text-decoration:none;border-radius:6px;font-size:14px;border:1px solid #ddd;transition:all .2s}.btn-danger{padding:8px 16px;background:#fee;color:#c33;border:1px solid #fcc;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-danger:hover{background:#fcc}.searchable-select{position:relative;width:100%}.searchable-select-trigger{display:flex;justify-content:space-between;align-items:center;padding:10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;transition:border-color .2s;min-height:42px}.searchable-select-trigger:hover:not(.disabled){border-color:#667eea}.searchable-select-trigger.open{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.searchable-select-trigger.disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.searchable-select-trigger .placeholder{color:#999}.searchable-select-arrow{color:#666;font-size:12px;transition:transform .2s}.searchable-select-trigger.open .searchable-select-arrow{transform:rotate(180deg)}.searchable-select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:1000;max-height:300px;display:flex;flex-direction:column;overflow:hidden}.searchable-select-search{padding:8px;border-bottom:1px solid #e0e0e0;background:#f9f9f9}.searchable-select-input{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit}.searchable-select-input:focus{outline:none;border-color:#667eea}.searchable-select-options{overflow-y:auto;max-height:250px}.searchable-select-option{padding:10px 12px;cursor:pointer;transition:background .2s;border-bottom:1px solid #f0f0f0}.searchable-select-option:last-child{border-bottom:none}.searchable-select-option:hover{background:#f5f5f5}.searchable-select-option.selected{background:#e8eaf6;color:#667eea;font-weight:500}.searchable-select-no-results{padding:20px;text-align:center;color:#999;font-size:14px}@media(max-width:768px){.searchable-select-dropdown{max-height:250px}.searchable-select-options{max-height:200px}.searchable-select-option{padding:12px;font-size:16px}}.nova-compra-page{padding:16px;max-width:1000px;margin:0 auto}@media(min-width:768px){.nova-compra-page{padding:24px}}.compra-form{padding:20px}@media(min-width:768px){.compra-form{padding:32px}}.compra-form{background:#fff;padding:32px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.form-hint{margin:4px 0 0;font-size:12px;color:#666;font-style:italic}.fornecedores-page{padding:16px;max-width:1400px;margin:0 auto}@media(min-width:768px){.fornecedores-page{padding:24px}}.fornecedores-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.fornecedor-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;display:flex;flex-direction:column}.fornecedor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.fornecedor-header h3{margin:0;color:#333;font-size:18px}.fornecedor-body{flex:1;margin-bottom:16px}.fornecedor-body p{margin:8px 0;color:#666;font-size:14px}.fornecedor-body strong{color:#333}.fornecedor-actions{display:flex;gap:8px;align-items:center}.novo-fornecedor-page{padding:16px;max-width:1000px;margin:0 auto}@media(min-width:768px){.novo-fornecedor-page{padding:24px}}.fornecedor-form{padding:20px}@media(min-width:768px){.fornecedor-form{padding:32px}}.fornecedor-form{background:#fff;padding:32px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.compradores-page{padding:16px;max-width:1400px;margin:0 auto}@media(min-width:768px){.compradores-page{padding:24px}}.compradores-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.comprador-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;display:flex;flex-direction:column}.comprador-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.comprador-header h3{margin:0;color:#333;font-size:18px}.comprador-body{flex:1;margin-bottom:16px}.comprador-body p{margin:8px 0;color:#666;font-size:14px}.comprador-body strong{color:#333}.comprador-actions{display:flex;gap:8px;align-items:center}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.novo-comprador-page{padding:16px;max-width:1000px;margin:0 auto}@media(min-width:768px){.novo-comprador-page{padding:24px}}.comprador-form{padding:20px}@media(min-width:768px){.comprador-form{padding:32px}}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{margin:0;color:#333;font-size:32px}.comprador-form{background:#fff;padding:32px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.form-section{margin-bottom:32px}.form-section h2{margin:0 0 20px;color:#333;font-size:20px;padding-bottom:12px;border-bottom:2px solid #e0e0e0}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:500;color:#333;font-size:14px}.form-group input,.form-group select,.form-group textarea{padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group textarea{resize:vertical}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:32px;padding-top:24px;border-top:1px solid #e0e0e0}.btn-secondary{padding:12px 24px;background:#f5f5f5;color:#333;border:1px solid #ddd;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s}.fases-compra-page{padding:16px;max-width:1200px;margin:0 auto}@media(min-width:768px){.fases-compra-page{padding:24px}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.page-header h1{margin:0 0 8px;color:#333;font-size:28px}.compra-info{margin:0;color:#666;font-size:14px}.compra-info strong{color:#667eea}.compra-info-row{display:flex;gap:12px;align-items:center;margin-top:4px;flex-wrap:wrap}.compra-info-row span{white-space:nowrap}.status-atrasado{color:#dc3545;font-weight:600}.status-proximo-vencer{color:#f57c00;font-weight:600}.page-header.header-atrasado{border-left:4px solid #dc3545;background:#fff5f5;border-radius:8px;padding:16px;margin-bottom:24px}.page-header.header-proximo-vencer{border-left:4px solid #ffc107;background:#fffbf0;border-radius:8px;padding:16px;margin-bottom:24px}.header-actions{display:flex;gap:12px}.progress-bar-container{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;display:flex;align-items:center;gap:16px}.progress-bar{flex:1;height:24px;background:#e0e0e0;border-radius:12px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(135deg,#667eea,#764ba2);transition:width .3s ease;border-radius:12px}.progress-text{font-weight:600;color:#333;min-width:80px;text-align:right}.fases-list{display:flex;flex-direction:column;gap:16px}.fase-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;transition:all .2s;border-left:4px solid #e0e0e0}.fase-card:hover{box-shadow:0 4px 12px #00000026}.fase-card.concluida{border-left-color:#4caf50;background:#f1f8f4}.fase-card.fase-atrasada{border-left-color:#dc3545;background:#fff5f5;box-shadow:0 2px 12px #dc354533}.fase-card.fase-atrasada .fase-header{border-bottom-color:#fcc}.fase-card.fase-proximo-vencer{border-left-color:#ffc107;background:#fffbf0;box-shadow:0 2px 12px #ffc10733}.fase-card.fase-proximo-vencer .fase-header{border-bottom-color:#ffe082}.fase-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:16px}.fase-numero{display:flex;align-items:flex-start;gap:12px;flex:1}.fase-numero>div{display:flex;flex-direction:column;gap:4px;flex:1}.numero-badge{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;font-weight:700;font-size:18px;flex-shrink:0}.fase-card.concluida .numero-badge{background:#4caf50}.fase-numero h3{margin:0;color:#333;font-size:18px}.badge-requer-valor{display:inline-block;padding:4px 8px;background:#fff3cd;color:#856404;border-radius:4px;font-size:12px;font-weight:500;margin-top:4px}.badge-personalizada{display:inline-block;padding:4px 8px;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:12px;font-weight:500;margin-top:4px;margin-left:8px}.checkbox-container{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-container input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#667eea}.checkmark{font-weight:500;color:#333}.fase-body{display:flex;flex-direction:column;gap:16px}.fase-field{display:flex;flex-direction:column;gap:8px}.fase-field label{font-weight:500;color:#333;font-size:14px}.fase-field input[type=date],.fase-field textarea{padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s}.fase-field input[type=date]:focus,.fase-field textarea:focus{outline:none;border-color:#667eea}.fase-field textarea{resize:vertical;min-height:80px}.fase-info{padding-top:8px;border-top:1px solid #e0e0e0}.fase-info small{color:#666;font-size:12px}.empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.empty-state p{margin-bottom:20px;color:#666;font-size:16px}.info-message{background:#fff;padding:32px;border-radius:8px;box-shadow:0 2px 8px #0000001a;text-align:center}.info-message p{margin:8px 0;color:#666;font-size:16px}.loading{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:18px;color:#666}.error{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:18px;color:#dc3545}.fase-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0;align-items:center}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid #ddd;border-radius:6px;color:#666;text-decoration:none;transition:all .2s;cursor:pointer}.btn-icon:hover:not(:disabled){background:#f5f5f5;border-color:#999;color:#333;transform:scale(1.05)}.btn-icon:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-icon svg{width:18px;height:18px}.btn-save{padding:8px 16px;background:#4caf50;color:#fff;border:1px solid #45a049;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.btn-save:hover:not(:disabled){background:#45a049}.btn-save:disabled{opacity:.6;cursor:not-allowed;animation:none}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:8px;padding:24px;max-width:500px;width:100%;box-shadow:0 4px 20px #0000004d;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-content h2{margin:0 0 20px;color:#333;font-size:24px}.modal-delete h2{color:#dc3545}.modal-body{margin-bottom:24px}.modal-body .form-group{margin-bottom:16px}.modal-body label{display:block;margin-bottom:8px;font-weight:500;color:#333}.modal-body input[type=text]{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit}.modal-body input[type=text]:focus{outline:none;border-color:#667eea}.current-name{padding:10px;background:#f5f5f5;border-radius:6px;color:#666;font-style:italic;margin:0}.warning-text{color:#dc3545;font-size:14px;margin-top:12px;padding:12px;background:#fff5f5;border-radius:6px;border-left:4px solid #dc3545}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:opacity .2s}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:12px 24px;background:#f5f5f5;color:#333;border:1px solid #ddd;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#e0e0e0}.App{min-height:100vh}
