@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--primary-color: #007aff;--primary-hover: #0056b3;--success-color: #34c759;--error-color: #ff3b30;--background-color: #f2f2f7;--card-background: #ffffff;--text-primary: #1c1c1e;--text-secondary: #636366;--border-color: #e5e5ea;--shadow: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--route-duration: .34s;--route-ease: cubic-bezier(.16, .84, .44, 1);--card-stagger: 38ms;--modal-duration: .36s}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background-color);color:var(--text-primary);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{height:100%;margin:0;padding:0;overflow-x:hidden}body.no-scroll{overflow:hidden}#root{height:100%}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;max-width:100%;margin:0 auto}.app-container{max-width:480px;margin:0 auto;background:var(--background-color);min-height:100vh;min-height:100dvh;position:relative;overflow:hidden}.header{background:var(--card-background);border-bottom:1px solid var(--border-color);padding:12px 16px;position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;z-index:1000;height:56px;display:flex;align-items:center}.header-content{width:100%;display:flex;justify-content:space-between;align-items:center}.header-title{font-size:20px;font-weight:600;color:var(--text-primary)}.main-content{flex:1;overflow-y:auto;padding:72px 16px 88px;max-width:480px;margin:0 auto;width:100%;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none}.main-content::-webkit-scrollbar{display:none}.route-fade{display:flex;flex-direction:column;flex:1;min-height:0;animation:routeFadeIn var(--route-duration) var(--route-ease) both;will-change:opacity}@keyframes routeFadeIn{0%{opacity:0}to{opacity:1}}.card{background:var(--card-background);border-radius:12px;box-shadow:var(--shadow);padding:12px;margin-bottom:8px;border:none}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;text-decoration:none;gap:8px;margin-bottom:4px;margin-top:4px}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-icon{background:transparent;border:none;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.btn-icon:hover{background-color:#0000000d}.btn-icon:focus-visible{outline:none;background-color:#00000014;box-shadow:0 0 0 3px #007aff40}.btn-icon.btn-primary:focus-visible{background:var(--primary-color);box-shadow:0 0 0 3px #007aff59}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-secondary);font-size:15px}.form-input,.form-select,.form-textarea{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;font-size:16px;font-family:inherit;font-weight:400;background-color:#fcfcfc;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #007aff33}.form-error{color:var(--error-color);font-size:14px;margin-top:6px}.toast-container{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:9999;display:flex;justify-content:center;align-items:center}.toast{display:flex;align-items:center;gap:12px;padding:12px 20px;border-radius:24px;color:#fff;font-weight:500;box-shadow:var(--shadow-lg);animation:fadeInDown .5s ease-out}.toast-success{background:var(--success-color)}.toast-error{background:var(--error-color)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffffc7;display:flex;justify-content:center;align-items:center;z-index:9998;backdrop-filter:blur(4px) saturate(1.05);-webkit-backdrop-filter:blur(4px) saturate(1.05);animation:overlayFadeIn .26s var(--route-ease) both}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.spinner{width:46px;height:46px;display:inline-block;position:relative;animation:spinnerPulse 1.2s ease-in-out infinite}.spinner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid transparent;border-top-color:var(--primary-color);border-right-color:var(--primary-color);filter:drop-shadow(0 0 4px rgba(0,0,0,.08))}.spinner:after{animation:spin .9s linear infinite;top:6px;right:6px;bottom:6px;left:6px;border-top-color:var(--primary-hover);border-right-color:var(--primary-hover);opacity:.85}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinnerPulse{0%,to{transform:scale(.9);opacity:.85}50%{transform:scale(1);opacity:1}}.fab{position:fixed;bottom:70px;right:50%;transform:translate(216px);width:60px;height:60px;background:var(--primary-color);color:#fff;border:none;border-radius:50%;box-shadow:var(--shadow-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:300;transition:all .2s ease-out;z-index:1000;text-decoration:none}.fab:hover{background:var(--primary-hover);transform:translate(216px) scale(1.05)}.form-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;z-index:5000;display:flex;flex-direction:column;overflow:hidden;animation:modalFadeIn var(--modal-duration) var(--route-ease) both;will-change:opacity,transform,filter}@keyframes modalFadeIn{0%{opacity:0;filter:blur(10px) saturate(.9)}55%{filter:blur(0) saturate(1)}to{opacity:1;filter:blur(0)}}.product-list{display:flex;flex-direction:column;gap:4px}.product-item{opacity:0;transform:translateY(12px) scale(.985);filter:blur(6px) saturate(.95);animation:cardFadeIn .52s var(--route-ease) forwards}.product-item:nth-child(1){animation-delay:calc(var(--card-stagger) * 0)}.product-item:nth-child(2){animation-delay:calc(var(--card-stagger) * 1)}.product-item:nth-child(3){animation-delay:calc(var(--card-stagger) * 2)}.product-item:nth-child(4){animation-delay:calc(var(--card-stagger) * 3)}.product-item:nth-child(5){animation-delay:calc(var(--card-stagger) * 4)}.product-item:nth-child(6){animation-delay:calc(var(--card-stagger) * 5)}.product-item:nth-child(7){animation-delay:calc(var(--card-stagger) * 6)}.product-item:nth-child(8){animation-delay:calc(var(--card-stagger) * 7)}.product-item:nth-child(9){animation-delay:calc(var(--card-stagger) * 8)}.product-item:nth-child(10){animation-delay:calc(var(--card-stagger) * 9)}@keyframes cardFadeIn{0%{opacity:0}55%{filter:blur(0) saturate(1)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.product-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.product-id{font-size:18px;font-weight:600;color:var(--primary-color)}.product-actions{display:flex;gap:4px}.product-info{display:grid;gap:10px}.product-field{display:flex;justify-content:space-between;align-items:flex-start;font-size:15px;padding:6px 0;border-bottom:1px solid #f0f0f0}.product-field:last-child{border-bottom:none}.product-field-label{font-weight:500;color:var(--text-secondary);margin-right:16px}.product-field-value{color:var(--text-primary);text-align:right;flex:1;word-break:break-word;white-space:pre-wrap}.justify-last-right{text-align:justify;text-align-last:left}.product-field-value .form-select{max-width:180px;margin-left:auto;padding:6px 10px;font-size:14px}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:13px;font-weight:500;text-align:center;background-color:#e5e5ea;color:#3c3c43}.status-da-mua{background-color:#d4edda;color:#155724}.status-yeu-cau-mua{background-color:#fff3cd;color:#856404}.status-da-nhan{background-color:#d1ecf1;color:#0c5460}.search-box{display:flex;align-items:center;gap:10px}.search-input-wrapper{position:relative;flex:1}.search-input{width:100%;height:44px;padding:12px 16px 12px 12px;border-radius:10px;background-color:#efeff4;border:1px solid transparent;font-size:16px;line-height:20px}.search-input:focus{background-color:#fff;border-color:var(--border-color)}.search-button{height:44px;padding:0 16px;white-space:nowrap;flex-shrink:0;border-radius:10px}@media (max-width: 360px){.search-box{flex-direction:column;align-items:stretch;gap:8px}.search-button{width:100%}}.filter-container{display:flex;flex-direction:column;gap:16px;margin-top:16px}.product-list.refreshing{position:relative}.product-list.refreshing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff8c;backdrop-filter:blur(2.5px) saturate(1.05);-webkit-backdrop-filter:blur(2.5px) saturate(1.05);border-radius:12px;animation:overlayPulse .9s ease-in-out infinite alternate;pointer-events:none}@keyframes overlayPulse{0%{opacity:.6}to{opacity:1}}@media (prefers-reduced-motion: reduce){.route-fade,.loading-overlay,.product-list.refreshing:after{animation:none!important}}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.filter-row .form-group{margin-bottom:0}@media (max-width: 479px){.app-container{max-width:100%;margin:0}.header{left:0;transform:none;max-width:100%}.main-content{max-width:100%;padding:72px 12px 88px}.fab{right:16px;transform:none}.fab:hover{transform:scale(1.05)}}@media (min-width: 480px) and (max-width: 768px){body{background:linear-gradient(to right,#2c2c2e 0,#2c2c2e calc((100vw - 480px)/2),var(--background-color) calc((100vw - 480px)/2),var(--background-color) calc(100vw - ((100vw - 480px)/2)),#2c2c2e calc(100vw - ((100vw - 480px)/2)),#2c2c2e 100%)}.app-container{box-shadow:none}}@media (min-width: 769px){body{background:linear-gradient(to right,#2c2c2e 0,#2c2c2e calc((100vw - 480px)/2),var(--background-color) calc((100vw - 480px)/2),var(--background-color) calc(100vw - ((100vw - 480px)/2)),#2c2c2e calc(100vw - ((100vw - 480px)/2)),#2c2c2e 100%)}.app-container{box-shadow:none;border-radius:0;margin-top:0;min-height:100vh}.header{border-radius:0}}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-toggle-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);cursor:pointer}.password-toggle-icon:hover{color:var(--text-primary)}.menu-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:1050;opacity:0;pointer-events:none;transition:opacity .26s cubic-bezier(.22,.61,.36,1)}.menu-backdrop.visible{opacity:1;pointer-events:auto}.dropdown-menu{position:absolute;top:56px;right:16px;background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:8px;min-width:220px;box-shadow:var(--shadow-lg);z-index:1100}.menu-item{display:flex;padding:10px 12px;border-radius:8px;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px}.menu-item .menu-icon{width:20px;height:20px;flex-shrink:0}.menu-item:hover{background:#bbb}.menu-item.danger{color:#d00}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:16px;z-index:6000}.modal{width:100%;max-width:420px;background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);padding:16px;animation:modalFadeIn var(--modal-duration) var(--route-ease) both}.drawer{position:absolute;top:0;left:0;bottom:0;width:80%;max-width:320px;min-width:260px;background:#fff;border-right:1px solid var(--border-color);box-shadow:none;transform:translate(-100%);transition:transform .24s ease;z-index:1100;padding:12px;display:flex;flex-direction:column;gap:4px}.drawer.open{transform:translate(0)}
