:root{--green: #1D9E75;--green-light: #e6f7f1;--green-dark: #167a5b;--bg: #f8f9fa;--white: #ffffff;--gray-50: #f8f9fa;--gray-100: #f1f3f5;--gray-200: #e9ecef;--gray-300: #dee2e6;--gray-400: #ced4da;--gray-500: #adb5bd;--gray-600: #868e96;--gray-700: #495057;--gray-800: #343a40;--gray-900: #212529;--danger: #e03131;--danger-light: #fff5f5;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-lg: 0 4px 12px rgba(0,0,0,.1);--font: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "DM Mono", monospace;--nav-height: 64px;--bottom-nav: 60px}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font);background:var(--bg);color:var(--gray-900);-webkit-font-smoothing:antialiased;min-height:100dvh}button{font-family:var(--font);cursor:pointer;border:none;outline:none}input,select,textarea{font-family:var(--font);outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:all .15s ease;min-height:48px}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-primary:active{transform:scale(.97)}.btn-secondary{background:var(--gray-100);color:var(--gray-800)}.btn-secondary:hover{background:var(--gray-200)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#c92a2a}.btn-ghost{background:transparent;color:var(--green)}.btn-ghost:hover{background:var(--green-light)}.input{width:100%;padding:12px 16px;border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);font-size:15px;min-height:48px;transition:border-color .15s ease;background:var(--white)}.input:focus{border-color:var(--green)}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.app-layout{min-height:100dvh;display:flex;flex-direction:column}.main-content{flex:1;padding:16px;padding-bottom:calc(var(--bottom-nav) + 24px);max-width:960px;margin:0 auto;width:100%}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav);background:var(--white);border-top:1px solid var(--gray-200);display:flex;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;color:var(--gray-500);font-size:11px;font-weight:500;transition:color .15s;text-decoration:none;-webkit-tap-highlight-color:transparent}.nav-item.active{color:var(--green)}.nav-item-icon{font-size:22px;line-height:1}.sidebar{display:none}@media (min-width: 768px){.bottom-nav{display:none}.sidebar{display:flex;flex-direction:column;width:240px;position:fixed;left:0;top:0;bottom:0;background:var(--white);border-right:1px solid var(--gray-200);padding:24px 16px;z-index:100}.main-content{margin-left:240px;padding-bottom:24px}}@media (min-width: 1280px){.sidebar{width:280px}.main-content{margin-left:280px}}.sidebar-logo{font-size:20px;font-weight:700;color:var(--green);margin-bottom:32px;padding:0 8px}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-sm);background:none;color:var(--gray-700);font-size:15px;font-weight:500;transition:all .15s;text-decoration:none;width:100%;text-align:left}.sidebar-item:hover{background:var(--gray-100)}.sidebar-item.active{background:var(--green-light);color:var(--green)}.sidebar-item-icon{font-size:20px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-title{font-size:24px;font-weight:700}.fab{position:fixed;bottom:calc(var(--bottom-nav) + 20px);right:20px;width:56px;height:56px;border-radius:50%;background:var(--green);color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);z-index:50;transition:transform .15s,background .15s}.fab:hover{background:var(--green-dark)}.fab:active{transform:scale(.9)}@media (min-width: 768px){.fab{bottom:24px;right:24px}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--white);width:100%;max-height:90dvh;border-radius:var(--radius) var(--radius) 0 0;overflow-y:auto;padding:20px}@media (min-width: 768px){.modal-overlay{align-items:center}.modal{max-width:560px;border-radius:var(--radius);max-height:80dvh}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:18px;font-weight:700}.modal-close{width:36px;height:36px;border-radius:50%;background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--gray-600)}.tabs{display:flex;gap:0;border-bottom:2px solid var(--gray-200);margin-bottom:20px}.tab{flex:1;padding:12px;text-align:center;background:none;color:var(--gray-500);font-size:14px;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.tab.active{color:var(--green);border-bottom-color:var(--green)}.chip-row{display:flex;gap:8px;overflow-x:auto;padding:4px 0;margin-bottom:16px;-webkit-overflow-scrolling:touch}.chip{flex-shrink:0;padding:8px 16px;border-radius:20px;background:var(--gray-100);color:var(--gray-700);font-size:13px;font-weight:600;transition:all .15s}.chip.active{background:var(--green);color:#fff}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--gray-600);margin-bottom:6px}.empty-state{text-align:center;padding:48px 24px;color:var(--gray-500)}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state-text{font-size:15px}.auth-container{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:400px}.auth-logo{font-size:28px;font-weight:700;color:var(--green);text-align:center;margin-bottom:32px}.product-card{display:flex;gap:12px;padding:12px;border-radius:var(--radius-sm);transition:background .15s;cursor:pointer}.product-card:hover{background:var(--gray-50)}.product-img{width:80px;height:80px;border-radius:var(--radius-sm);object-fit:cover;background:var(--gray-100);flex-shrink:0}.product-img-fallback{width:80px;height:80px;border-radius:var(--radius-sm);background:var(--green-light);display:flex;align-items:center;justify-content:center;font-size:32px;flex-shrink:0}.product-info{flex:1;min-width:0}.product-name{font-size:15px;font-weight:600}.product-brand{font-size:13px;color:var(--gray-500)}.product-desc{font-size:13px;color:var(--gray-600);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cat-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--gray-600);background:var(--gray-100);padding:3px 8px;border-radius:12px;margin-top:4px}.size-pills{display:flex;gap:6px;flex-wrap:wrap}.size-pill{padding:6px 12px;border-radius:16px;background:var(--gray-100);font-size:13px;font-weight:500;color:var(--gray-700);transition:all .15s}.size-pill.active{background:var(--green);color:#fff}.qty-stepper{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);overflow:hidden}.qty-btn{width:36px;height:36px;background:var(--gray-50);font-size:18px;font-weight:600;color:var(--gray-700);display:flex;align-items:center;justify-content:center}.qty-btn:active{background:var(--gray-200)}.qty-value{width:40px;text-align:center;font-size:15px;font-weight:600}.list-item{display:flex;gap:12px;padding:12px;align-items:center;transition:opacity .2s}.list-item.checked{opacity:.4}.list-item.checked .product-name{text-decoration:line-through}.list-item-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.cat-section{margin-bottom:8px}.cat-header{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.cat-header-icon{font-size:20px}.cat-header-label{font-size:15px;font-weight:600;flex:1}.cat-header-count{background:var(--green);color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px;min-width:22px;text-align:center}.cat-header-arrow{color:var(--gray-400);font-size:14px;transition:transform .2s}.cat-header-arrow.open{transform:rotate(90deg)}.cat-body{overflow:hidden;transition:max-height .25s ease}.invite-code{font-family:var(--font-mono);font-size:32px;font-weight:500;letter-spacing:4px;color:var(--green);text-align:center;padding:16px}.search-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (min-width: 768px){.search-grid{grid-template-columns:repeat(3,1fr)}}.invoice-table{width:100%;border-collapse:collapse}.invoice-table th,.invoice-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--gray-200);font-size:14px}.invoice-table th{font-weight:600;color:var(--gray-600);font-size:12px;text-transform:uppercase}.spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--green);border-radius:50%;animation:spin .6s linear infinite;margin:24px auto}@keyframes spin{to{transform:rotate(360deg)}}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center}.scanner-video{width:100%;max-width:500px;aspect-ratio:1;object-fit:cover}.scanner-reticle{position:absolute;width:250px;height:250px;border:3px solid var(--green);border-radius:16px}.scanner-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;background:#00000080;color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center}.history-item{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background .15s}.history-item:hover{background:var(--gray-50)}.history-meta{flex:1}.history-name{font-size:15px;font-weight:600}.history-date{font-size:13px;color:var(--gray-500)}.history-count{font-size:13px;color:var(--gray-500);background:var(--gray-100);padding:4px 10px;border-radius:12px}.member-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--gray-100)}.member-avatar{width:40px;height:40px;border-radius:50%;background:var(--green-light);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.member-info{flex:1}.member-name{font-size:15px;font-weight:500}.member-role{font-size:12px;color:var(--gray-500);text-transform:uppercase}.delete-btn{padding:8px 12px;background:var(--danger);color:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:600}
