:root{--color-primary:#6366f1;--color-primary-hover:#4f46e5;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-success:#22c55e;--color-success-hover:#16a34a;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-bg:#0f172a;--color-bg-secondary:#1e293b;--color-bg-tertiary:#334155;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-border:#334155;--color-border-light:#475569;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.3);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.4),0 4px 6px -4px rgba(0,0,0,.3);--transition:.15s ease}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}main{min-height:100vh;padding:1rem}button{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:none;justify-content:center;align-items:center;gap:.5rem;font-family:inherit;font-weight:500;display:inline-flex}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;padding:.625rem 1.25rem}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text);transition:all var(--transition);width:100%;padding:.625rem .875rem;font-family:inherit;font-size:1rem}input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.2)}input::placeholder{color:var(--color-text-muted)}label{color:var(--color-text-secondary);margin-bottom:.375rem;font-size:.875rem;font-weight:500;display:block}.form-group{margin-bottom:1.25rem}.loading{text-align:center;color:var(--color-text-muted);padding:3rem 1rem}.error{color:#fca5a5;border-radius:var(--radius-md);background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.login-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);max-width:400px;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);margin:2rem auto;padding:1.5rem}.login-container h1{text-align:center;color:var(--color-text);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.login-container .subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:1.5rem;font-size:.875rem}.login-form button{background:var(--color-primary);color:#fff;width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem}.login-form button:hover:not(:disabled){background:var(--color-primary-hover)}.app-container{max-width:800px;margin:0 auto}header{background:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.875rem 1rem;display:flex}header h1{color:var(--color-text);font-size:1.125rem;font-weight:700}.user-info{color:var(--color-text-secondary);align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.user-info span{display:none}.btn-logout{background:var(--color-bg-tertiary);color:var(--color-text-secondary);padding:.5rem .875rem;font-size:.8125rem}.btn-logout:hover{background:var(--color-danger);color:#fff}.product-list{background:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);overflow:hidden}.product-list>.header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:1rem;display:flex}.product-list h2{color:var(--color-text);font-size:1rem;font-weight:600}.btn-add{background:var(--color-primary);color:#fff;white-space:nowrap;padding:.5rem .875rem;font-size:.8125rem}.btn-add:hover{background:var(--color-primary-hover)}.product-items{flex-direction:column;display:flex}.product-item{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.product-item:last-child{border-bottom:none}.product-item-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.product-info{flex:1;min-width:0}.product-name{color:var(--color-text);word-break:break-word;margin-bottom:.25rem;font-size:.9375rem;font-weight:600}.product-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:.5rem 1rem;font-size:.8125rem;display:flex}.product-item-footer{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.days-badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-ok .days-badge{color:#4ade80;background:rgba(34,197,94,.2)}.status-warning .days-badge{color:#fbbf24;background:rgba(245,158,11,.2)}.status-critical .days-badge{color:#f87171;background:rgba(239,68,68,.2)}.status-expired .days-badge{background:var(--color-danger);color:#fff}.actions{gap:.5rem;display:flex}.btn-edit,.btn-delete{background:var(--color-bg-tertiary);color:var(--color-text-secondary);padding:.375rem .625rem;font-size:.75rem}.btn-edit:hover{background:var(--color-primary);color:#fff}.btn-delete:hover{background:var(--color-danger);color:#fff}.modal-overlay{backdrop-filter:blur(4px);z-index:1000;background:rgba(0,0,0,.7);justify-content:center;align-items:flex-end;padding:0;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal{background:var(--color-bg-secondary);border-radius:var(--radius-lg)var(--radius-lg)0 0;width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);border-bottom:none;padding:1.5rem;animation:.2s slideUp;overflow-y:auto}.modal h2{color:var(--color-text);margin-bottom:1.25rem;font-size:1.125rem;font-weight:600}.form-actions{border-top:1px solid var(--color-border);gap:.75rem;margin-top:1.5rem;padding-top:1rem;display:flex}.btn-cancel{background:var(--color-bg-tertiary);color:var(--color-text-secondary);flex:1;padding:.75rem 1rem}.btn-cancel:hover{background:var(--color-border-light)}.btn-save{background:var(--color-primary);color:#fff;flex:1;padding:.75rem 1rem}.btn-save:hover:not(:disabled){background:var(--color-primary-hover)}.empty-state{text-align:center;padding:3rem 1.5rem}.empty-state-icon{margin-bottom:.75rem;font-size:2.5rem}.empty-state h3{color:var(--color-text);margin-bottom:.375rem;font-size:1rem}.empty-state p{color:var(--color-text-muted);margin-bottom:1.25rem;font-size:.875rem}.ai-overview{background:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);margin-bottom:1rem;overflow:hidden}.ai-overview-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:1rem;display:flex}.ai-overview-header h3{color:var(--color-text);font-size:1rem;font-weight:600}.btn-refresh{background:var(--color-bg-tertiary);color:var(--color-text-secondary);padding:.375rem .75rem;font-size:.75rem}.btn-refresh:hover:not(:disabled){background:var(--color-primary);color:#fff}.ai-overview-content{color:var(--color-text-secondary);padding:1rem;font-size:.875rem;line-height:1.6}.ai-overview-content.loading,.ai-overview-content.disabled{color:var(--color-text-muted);font-style:italic}.ai-overview-content.error{color:#fca5a5}.ai-overview-content p{white-space:pre-wrap}.ai-overview-meta{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin-top:.75rem;padding-top:.75rem;font-size:.75rem}@media (width>=640px){main{padding:1.5rem}.login-container{margin:4rem auto;padding:2rem}.login-container h1{font-size:1.75rem}.login-container .subtitle{margin-bottom:2rem;font-size:1rem}header{padding:1rem 1.5rem}header h1{font-size:1.25rem}.user-info span{display:inline}.product-list>.header{padding:1.25rem 1.5rem}.product-list h2{font-size:1.125rem}.product-item{flex-direction:row;align-items:center;padding:1rem 1.5rem}.product-item-header{flex:1;align-items:center}.product-item-footer{flex-shrink:0}.product-name{margin-bottom:0;font-size:1rem}.product-meta{font-size:.875rem}.days-badge{padding:.25rem .75rem;font-size:.8125rem}.btn-edit,.btn-delete{padding:.375rem .75rem;font-size:.8125rem}.modal-overlay{align-items:center;padding:1rem}.modal{border-radius:var(--radius-lg);border:1px solid var(--color-border);max-width:420px}.form-actions{justify-content:flex-end}.btn-cancel,.btn-save{flex:none;padding:.625rem 1.25rem}.empty-state{padding:4rem 2rem}.empty-state-icon{font-size:3rem}}