*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font-display: "Syne", -apple-system, "SF Pro Display", sans-serif;--font-body: "Outfit", -apple-system, "SF Pro Text", "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Menlo", monospace;--white: #FFFFFF;--black: #0A0A0A;--off-white: #F5F5F3;--charcoal: #5A5A54;--stone: #9A9A92;--border: #E0E0C5;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px}body{font-family:var(--font-body);font-weight:400;color:var(--black);background:var(--white);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mono{font-family:var(--font-mono)}.app-shell{max-width:430px;margin:0 auto;min-height:100vh;background:var(--white);position:relative;overflow-x:hidden}.app-content{padding-bottom:100px}.bottom-tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--white);border-top:1px solid var(--border);padding:8px 0 env(safe-area-inset-bottom,8px) 0}.bottom-tab-bar-inner{max-width:430px;margin:0 auto;display:flex;align-items:flex-end;justify-content:space-around;height:56px;position:relative}.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;padding:4px 0;flex:1;-webkit-tap-highlight-color:transparent}.tab-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center}.tab-icon svg{width:22px;height:22px;stroke-width:1.8;fill:none}.tab-item .tab-label{font-family:var(--font-body);font-size:10px;font-weight:500;color:var(--stone);transition:color .15s}.tab-item.active .tab-label{color:var(--black)}.tab-item .tab-icon svg{stroke:var(--stone);transition:stroke .15s}.tab-item.active .tab-icon svg{stroke:var(--black)}.tab-item-scan{display:flex;align-items:center;justify-content:center;flex:1;background:none;border:none;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent;position:relative}.scan-btn-elevated{width:56px;height:56px;border-radius:var(--radius-lg);background:var(--white);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;transform:translateY(-14px);box-shadow:0 2px 8px #0000000f;transition:border-color .15s}.tab-item-scan.active .scan-btn-elevated{border-color:var(--black)}.scan-btn-elevated img{width:28px;height:28px}.page{display:flex;flex-direction:column;gap:var(--space-md);padding:0 20px}.page h1{font-family:var(--font-display);font-size:28px;font-weight:800;letter-spacing:-.5px;padding-top:var(--space-lg)}.page h2{font-family:var(--font-display);font-size:18px;font-weight:700}.page-header{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-lg)}.page-header h1{padding-top:0}.header-actions{display:flex;gap:var(--space-sm)}.section{display:flex;flex-direction:column;gap:var(--space-md)}.center-content{text-align:center;padding:40px 0;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.text-secondary{color:var(--charcoal)}.btn{border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;padding:10px 16px;cursor:pointer;transition:opacity .15s;font-family:var(--font-body);-webkit-tap-highlight-color:transparent}.btn:active{opacity:.8}.btn-primary{background:var(--black);color:var(--white);font-weight:600;font-size:15px;height:52px;width:100%;border-radius:var(--radius-md)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--off-white);color:var(--black);border:1px solid var(--border)}.btn-ghost{background:transparent;color:var(--black);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;padding:6px 12px}.btn-danger{background:var(--off-white);color:var(--black);border:1px solid var(--border)}.btn-large{height:52px;font-size:15px;font-weight:600;width:100%}.mode-selector{display:flex;gap:0;background:var(--off-white);border-radius:var(--radius-full);overflow:hidden;border:1px solid var(--border);padding:3px}.mode-btn{flex:1;background:none;border:none;color:var(--charcoal);padding:10px 12px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:var(--font-body);border-radius:var(--radius-full)}.mode-btn.active{background:var(--black);color:var(--white)}.upload-area{display:flex;flex-direction:column;gap:var(--space-md)}.quick-capture-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.upload-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:32px 16px;border:2px dashed var(--border);border-radius:var(--radius-md);background:var(--off-white);color:var(--charcoal);cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:500;transition:border-color .2s;-webkit-tap-highlight-color:transparent}.upload-btn:hover{border-color:var(--charcoal)}.upload-btn svg{stroke:var(--charcoal)}.preview-container{position:relative;border-radius:var(--radius-md);overflow:hidden}.preview-container .btn-ghost{position:absolute;top:8px;right:8px}.preview-img{width:100%;border-radius:var(--radius-md)}.photo-collector{display:flex;flex-direction:column;gap:var(--space-sm)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.photo-slot{aspect-ratio:3/4;border:2px dashed var(--border);border-radius:var(--radius-md);overflow:hidden;position:relative;background:var(--off-white)}.photo-slot.filled{border-style:solid}.photo-slot img{width:100%;height:100%;object-fit:cover}.photo-add{width:100%;height:100%;background:none;border:none;color:var(--charcoal);font-size:12px;cursor:pointer;font-family:var(--font-body);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.photo-add-icon{font-size:24px;color:var(--stone)}.photo-add-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;color:var(--stone)}.photo-add:disabled{opacity:.3;cursor:not-allowed}.photo-remove{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--black);color:var(--white);border:none;cursor:pointer;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}.photo-label{position:absolute;bottom:0;left:0;right:0;background:#0009;color:#fff;font-family:var(--font-mono);font-size:10px;text-align:center;padding:2px;text-transform:uppercase}.bbox-container{position:relative;border-radius:var(--radius-md);overflow:hidden}.bbox-canvas{width:100%;height:auto;display:block;border-radius:var(--radius-md)}.frame-selector{display:flex;flex-direction:column;gap:var(--space-sm)}.frame-selector-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone)}.frame-selector-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.frame-selector-thumb{position:relative;border:2px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;padding:0;background:none;transition:border-color .15s;-webkit-tap-highlight-color:transparent}.frame-selector-thumb.active{border-color:var(--black)}.frame-selector-thumb img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block}.frame-selector-num{position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:#0009;color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.frame-selector-thumb.active .frame-selector-num{background:var(--black)}.polygon-overlay-container{position:relative;border-radius:var(--radius-md);overflow:hidden}.polygon-overlay-img{width:100%;display:block}.polygon-overlay-svg{position:absolute;top:0;left:0;pointer-events:none}.angle-annotations{display:flex;flex-direction:column;gap:var(--space-md)}.angle-annotation{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.angle-label{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--charcoal);padding:8px 12px;background:var(--off-white);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:1.5px}.video-capture{display:flex;flex-direction:column;gap:var(--space-md)}.vc-viewfinder{position:relative;border-radius:var(--radius-md);overflow:hidden;background:#000;aspect-ratio:4 / 3}.vc-video{width:100%;height:100%;object-fit:cover;display:block}.vc-idle-overlay,.vc-extracting-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0009;color:#fff;font-size:14px}.vc-fs-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 12px 6px;z-index:10;pointer-events:none}.vc-rec-badge{display:flex;align-items:center;gap:6px;background:#0009;padding:4px 10px;border-radius:16px;font-family:var(--font-mono);font-size:11px;font-weight:700;color:#fff;letter-spacing:1px}.vc-rec-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;animation:pulse-dot 1s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.vc-fs-countdown{background:#0009;padding:4px 10px;border-radius:16px;font-family:var(--font-mono);font-size:18px;font-weight:700;color:#fff}.vc-fs-progress-track{position:absolute;top:0;left:0;right:0;height:3px;background:#fff3;z-index:11}.vc-fs-progress-fill{height:100%;background:#ef4444;transition:width .1s linear}.vc-fs-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 12px 12px;z-index:10}.vc-fs-stop-btn{width:56px;height:56px;border-radius:50%;border:3px solid white;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.vc-fs-stop-square{width:22px;height:22px;border-radius:4px;background:#ef4444}.vc-fs-stop-label{font-family:var(--font-body);font-size:11px;font-weight:500;color:#fffc}.vc-controls{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);justify-content:center}.vc-record-btn{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:8px;-webkit-tap-highlight-color:transparent}.vc-record-inner{width:64px;height:64px;border-radius:50%;background:#ef4444;border:4px solid var(--border);transition:transform .15s}.vc-record-btn:active .vc-record-inner{transform:scale(.9)}.vc-record-label{font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--charcoal)}.vc-frames{display:flex;flex-direction:column;gap:var(--space-sm)}.vc-frame-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.vc-frame-thumb{position:relative;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.vc-frame-thumb img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block}.vc-frame-label{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;font-family:var(--font-mono);font-size:10px;text-align:center;padding:3px}.scan-loading-overlay{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4 / 3;background:var(--off-white)}.scan-loading-overlay img{width:100%;height:100%;object-fit:cover;opacity:.4;filter:brightness(.5)}.scan-loading-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md)}.scan-spinner{width:44px;height:44px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--white);border-radius:50%;animation:spin .8s linear infinite}.scan-loading-text{color:var(--white);font-size:14px;font-weight:500;letter-spacing:.5px}.scan-loading-dots:after{content:"";animation:dots 1.5s steps(4,end) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm)}.summary-card{background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 8px;text-align:center}.summary-value{font-size:24px;font-weight:700;font-family:var(--font-mono);color:var(--black)}.summary-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--stone);margin-top:2px}.results-list{display:flex;flex-direction:column;gap:var(--space-sm)}.results-list h3{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--black)}.result-row{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md)}.result-info{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.result-name{font-weight:500;font-size:14px}.result-ocr{font-size:11px;color:var(--stone)}.badge{font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);text-transform:uppercase}.badge-green{background:var(--black);color:var(--white)}.badge-blue,.badge-purple{background:var(--off-white);color:var(--charcoal);border:1px solid var(--border)}.badge-amber{background:var(--off-white);color:var(--stone);border:1px solid var(--border)}.result-counts{display:flex;align-items:center;gap:6px}.result-count{font-family:var(--font-mono);font-size:18px;font-weight:700}.result-hidden{font-family:var(--font-mono);font-size:11px;color:var(--stone)}.alert-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.alert-card{padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--off-white)}.alert-critical{border-left:3px solid var(--black)}.alert-low{border-left:3px solid var(--stone)}.alert-healthy{border-left:3px solid var(--border)}.alert-count{font-size:32px;font-weight:700;font-family:var(--font-mono)}.alert-critical .alert-count{color:var(--black)}.alert-low .alert-count{color:var(--charcoal)}.alert-healthy .alert-count{color:var(--stone)}.alert-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone);margin-top:2px}.alert-items{font-size:12px;color:var(--charcoal);margin-top:4px;line-height:1.3}.chart-wrapper{height:280px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 12px 12px}.chart-select{width:100%;height:40px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:0 12px;font-family:var(--font-mono);font-size:12px;color:var(--black);cursor:pointer;margin-bottom:var(--space-sm);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239A9A92' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.chart-select:focus{outline:none;border-color:var(--charcoal)}.table-container{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.depletion-table{width:100%;border-collapse:collapse;font-size:13px}.depletion-table th{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone);font-weight:500;padding:10px 12px;text-align:left;border-bottom:2px solid var(--black)}.depletion-table td{font-family:var(--font-body);font-size:14px;padding:10px 12px;border-bottom:1px solid var(--border)}.depletion-table td.mono{font-family:var(--font-mono);font-size:13px}.status-badge{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:2px 10px;border-radius:var(--radius-full);display:inline-block}.status-critical{background:var(--black);color:var(--white)}.status-low{border:1px solid var(--charcoal);color:var(--charcoal)}.status-healthy{color:var(--stone)}.restock-list{display:flex;flex-direction:column;gap:var(--space-sm)}.restock-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-md)}.restock-info{flex:1;min-width:0}.restock-name{font-weight:500;font-size:15px;display:block}.restock-stock{font-family:var(--font-mono);font-size:13px;color:var(--stone)}.restock-controls{display:flex;align-items:center;gap:var(--space-sm)}.qty-btn{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--off-white);border:1px solid var(--border);color:var(--black);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.qty-btn:active{background:var(--border)}.qty-input{width:64px;text-align:center;font-family:var(--font-mono);font-size:16px;font-weight:700;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);padding:6px;-moz-appearance:textfield}.qty-input::-webkit-inner-spin-button,.qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.qty-value{width:48px;text-align:center;font-family:var(--font-mono);font-size:16px;font-weight:700}.restock-price{text-align:right}.unit-price{font-family:var(--font-mono);font-size:11px;color:var(--stone);display:block}.line-total{font-family:var(--font-mono);font-size:14px;font-weight:700}.order-total{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--off-white);border:1px solid var(--black);border-radius:var(--radius-md)}.order-total span:first-child{font-family:var(--font-body);font-size:16px;font-weight:600}.order-total .mono{font-family:var(--font-mono);font-size:18px;font-weight:700}.order-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.supplier-selector{display:flex;flex-direction:column;gap:var(--space-xs)}.supplier-selector label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone)}.supplier-selector select{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--black);padding:12px;font-size:14px;font-family:var(--font-body)}.confirmed-order{display:flex;flex-direction:column;gap:var(--space-md)}.success-box{background:var(--off-white);border:1px solid var(--black);color:var(--black);padding:var(--space-md);border-radius:var(--radius-md);text-align:center;font-weight:600}.error-box{background:var(--off-white);border:1px solid var(--black);color:var(--black);padding:var(--space-md);border-radius:var(--radius-md);text-align:center}.zalo-section{display:flex;flex-direction:column;gap:var(--space-sm)}.zalo-section h3{font-family:var(--font-display);font-size:16px;font-weight:700}.zalo-preview{background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);font-family:var(--font-mono);font-size:12px;white-space:pre-wrap;color:var(--charcoal)}.zalo-actions{display:flex;gap:var(--space-sm)}.history-list{display:flex;flex-direction:column;gap:var(--space-sm)}.history-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);cursor:pointer;transition:border-color .15s}.history-card:hover{border-color:var(--charcoal)}.history-card.expanded{border-color:var(--black)}.history-header{display:flex;gap:var(--space-md);align-items:center}.history-thumb{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover}.history-date{font-family:var(--font-mono);font-size:11px;color:var(--stone);text-transform:uppercase}.history-summary{font-size:15px;font-weight:500}.history-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.history-item{display:flex;justify-content:space-between;font-size:14px}.history-item .mono{font-family:var(--font-mono);font-weight:500}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--space-md)}.modal{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);border-bottom:1px solid var(--border)}.modal-header h2{font-family:var(--font-display);font-size:18px;font-weight:700}.modal-close{background:none;border:none;color:var(--stone);font-size:20px;cursor:pointer}.modal-body{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.vocab-input-row{display:flex;gap:var(--space-sm)}.vocab-input-row input{flex:1;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--black);padding:10px 12px;font-size:14px;font-family:var(--font-body)}.vocab-input-row input:focus{outline:none;border-color:var(--charcoal)}.vocab-list{display:flex;flex-wrap:wrap;gap:6px;max-height:300px;overflow-y:auto}.vocab-item{display:flex;align-items:center;gap:4px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-full);padding:4px 8px 4px 12px;font-size:13px}.vocab-remove{background:none;border:none;color:var(--charcoal);cursor:pointer;font-size:14px;padding:0 2px}.vocab-count{font-family:var(--font-mono);font-size:12px;color:var(--stone);text-align:center}.vocab-textarea{width:100%;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--black);padding:12px;font-size:13px;font-family:var(--font-body);resize:vertical;line-height:1.5}.vocab-textarea:focus{outline:none;border-color:var(--charcoal)}.catalog-modal .modal-header{flex-direction:row;align-items:flex-start}.catalog-subtitle{font-family:var(--font-body);font-size:12px;color:var(--stone);margin-top:2px}.catalog-add-section{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md)}.catalog-field-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone)}.catalog-name-input{width:100%;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--black);padding:10px 12px;font-size:14px;font-family:var(--font-body);outline:none}.catalog-name-input:focus{border-color:var(--charcoal)}.catalog-file-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:10px 12px;background:var(--white);border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--charcoal);font-size:13px;font-family:var(--font-body);cursor:pointer;transition:border-color .15s}.catalog-file-btn:hover{border-color:var(--charcoal)}.catalog-file-btn svg{flex-shrink:0;stroke:var(--stone)}.catalog-add-btn{margin-top:var(--space-xs)}.catalog-list-header{display:flex;justify-content:space-between;align-items:center}.catalog-clear-btn{background:none;border:none;font-family:var(--font-mono);font-size:11px;color:var(--stone);cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px}.catalog-clear-btn:hover{color:var(--black)}.catalog-product-list{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;max-height:280px;overflow-y:auto}.catalog-product-row{display:flex;align-items:center;gap:var(--space-sm);padding:12px var(--space-md);background:var(--white)}.catalog-product-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--off-white);display:flex;align-items:center;justify-content:center;flex-shrink:0}.catalog-product-icon svg{stroke:var(--charcoal)}.catalog-product-thumb{width:40px;height:40px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;border:1px solid var(--border)}.catalog-product-name{flex:1;font-size:14px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-remove-btn{background:none;border:none;cursor:pointer;padding:4px;color:var(--stone);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color .15s}.catalog-remove-btn:hover{color:var(--black)}.catalog-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-2xl) var(--space-md);color:var(--stone)}.catalog-empty svg{stroke:var(--border)}.catalog-empty-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--charcoal)}.catalog-empty-desc{font-size:13px;color:var(--stone);text-align:center;line-height:1.4}.depth-insight{background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px var(--space-md);font-size:13px;color:var(--charcoal)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--black);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.home-hero{margin:0 20px;height:200px;border-radius:var(--radius-lg);overflow:hidden;position:relative;background:linear-gradient(135deg,var(--off-white) 0%,var(--border) 100%)}.home-hero-bg{width:100%;height:100%;object-fit:cover}.home-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 40%,#0a0a0a99);display:flex;flex-direction:column;justify-content:flex-end;padding:20px}.home-hero-title{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--white);line-height:1.1}.home-hero-dots{display:flex;gap:6px;justify-content:center;margin-top:12px}.home-hero-dot{width:6px;height:6px;border-radius:50%;background:#fff6}.home-hero-dot.active{background:var(--white)}.home-section{padding:0}.home-section-header{display:flex;align-items:center;gap:6px;margin-bottom:var(--space-md)}.home-section-title{font-family:var(--font-display);font-size:18px;font-weight:700}.home-section-arrow{font-size:16px;color:var(--stone)}.home-scan-scroll{display:flex;gap:var(--space-md);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:0 20px}.home-scan-scroll::-webkit-scrollbar{display:none}.home-scan-card{min-width:180px;max-width:180px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:border-color .15s;background:var(--white);flex-shrink:0}.home-scan-card:hover{border-color:var(--charcoal)}.home-scan-thumb{width:100%;height:120px;object-fit:cover;display:block;background:var(--off-white)}.home-scan-thumb-placeholder{width:100%;height:120px;display:flex;align-items:center;justify-content:center;background:var(--off-white)}.home-scan-thumb-placeholder img{width:32px;height:32px;opacity:.2}.home-scan-info{padding:12px}.home-scan-date{font-family:var(--font-mono);font-size:11px;color:var(--stone);text-transform:uppercase}.home-scan-title{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--black);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-scan-summary{font-size:12px;color:var(--charcoal);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.home-tool-btn{background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--space-sm);padding:14px 12px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s;flex-direction:column}.home-tool-btn:hover{border-color:var(--charcoal)}.home-tool-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center}.home-tool-icon svg{width:24px;height:24px;stroke:var(--charcoal);stroke-width:1.5;fill:none}.home-tool-label{font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--charcoal)}.home-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.home-stat{background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-sm);text-align:center}.home-stat-number{font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--black)}.home-stat-label{font-family:var(--font-mono);font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone);margin-top:2px}.home-critical-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md)}.home-critical-name{font-size:14px;font-weight:500}.home-critical-count{font-size:12px;color:var(--charcoal)}.home-search{position:relative;margin-bottom:var(--space-md)}.home-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--stone);pointer-events:none}.home-search-input{width:100%;padding:10px 36px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:14px;color:var(--black);outline:none}.home-search-input::placeholder{color:var(--stone)}.home-search-input:focus{border-color:var(--charcoal)}.home-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:18px;color:var(--stone);cursor:pointer;padding:4px 6px;line-height:1}.home-scan-list{display:flex;flex-direction:column;gap:var(--space-sm)}.home-scan-card-row{display:flex;gap:var(--space-md);padding:10px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s}.home-scan-card-row:hover{border-color:var(--charcoal)}.home-scan-row-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;background:var(--border)}.home-scan-row-thumb-placeholder{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0;background:var(--border);color:var(--stone)}.home-scan-row-info{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.home-scan-row-date{font-size:11px;color:var(--stone);text-transform:uppercase}.home-scan-row-count{font-size:14px;font-weight:600;color:var(--black)}.home-scan-row-products{font-size:12px;color:var(--charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-section{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-section-title{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone);padding-bottom:var(--space-xs)}.profile-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s;-webkit-tap-highlight-color:transparent}.profile-item:hover{border-color:var(--charcoal)}.profile-item-label{font-size:15px;font-weight:500}.profile-item-value{font-family:var(--font-mono);font-size:13px;color:var(--stone)}.profile-item-arrow{color:var(--stone);font-size:16px}.profile-email-input{width:100%;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);font-family:var(--font-body);font-size:15px;color:var(--black);outline:none}.profile-email-input:focus{border-color:var(--charcoal)}.profile-product-row{display:flex;align-items:center;gap:var(--space-sm);padding:10px 12px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md)}.profile-product-info{flex:1;display:flex;justify-content:space-between;align-items:center;min-width:0}.profile-product-name{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-product-stock{font-size:11px;color:var(--charcoal);flex-shrink:0}.profile-product-remove{background:none;border:none;padding:4px;cursor:pointer;color:var(--stone);flex-shrink:0}.profile-product-remove:hover{color:#c00}.profile-about{text-align:center;padding:var(--space-2xl) 0 var(--space-lg)}.profile-about-brand{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:-.5px}.profile-about-tagline{font-family:var(--font-body);font-size:13px;color:var(--stone);margin-top:4px}.briefing-card{background:var(--off-white);border:1px solid var(--border);border-left:3px solid var(--black);border-radius:var(--radius-md);padding:16px 20px}.briefing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.briefing-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--stone)}.briefing-refresh{background:none;border:none;padding:4px;cursor:pointer;color:var(--stone);display:flex;align-items:center}.briefing-refresh:hover{color:var(--black)}.briefing-refresh:disabled{opacity:.4;cursor:default}.briefing-spin{animation:spin 1s linear infinite}.briefing-lines{display:flex;flex-direction:column;gap:0}.briefing-line{font-family:var(--font-body);font-size:14px;font-weight:400;line-height:1.5;color:var(--black);padding:3px 0}.briefing-line-critical{font-weight:600;color:var(--black)}.briefing-line-low{color:var(--charcoal)}.briefing-spacer{height:8px}.briefing-skeleton{display:flex;flex-direction:column;gap:10px}.skeleton-line{height:14px;background:linear-gradient(90deg,var(--border) 25%,var(--off-white) 50%,var(--border) 75%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.deadlines-section{display:flex;flex-direction:column;gap:var(--space-sm)}.section-heading{font-family:var(--font-display);font-size:18px;font-weight:700}.deadlines-list{display:flex;flex-direction:column;gap:6px}.deadline-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.deadline-header{display:flex;justify-content:space-between;align-items:center}.deadline-product{font-family:var(--font-body);font-size:15px;font-weight:600}.deadline-pill{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:2px 8px;border-radius:2px}.deadline-pill-urgent{background:var(--black);color:var(--white)}.deadline-pill-tomorrow{border:1px solid var(--charcoal);color:var(--charcoal)}.deadline-pill-week{color:var(--stone)}.deadline-detail{font-family:var(--font-body);font-size:13px;color:var(--charcoal);margin-top:4px}.stock-bars{display:flex;flex-direction:column;gap:var(--space-md)}.stock-bar-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.stock-bar-name{font-family:var(--font-body);font-size:14px;font-weight:500}.stock-bar-right{display:flex;align-items:center;gap:var(--space-sm)}.stock-bar-qty{font-family:var(--font-mono);font-size:14px;font-weight:700}.stock-bar-tag{font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:var(--radius-full)}.stock-bar-tag-critical{background:var(--black);color:var(--white)}.stock-bar-tag-low{background:var(--charcoal);color:var(--white)}.stock-bar-tag-healthy{background:var(--off-white);border:1px solid var(--border);color:var(--charcoal)}.stock-bar-track{width:100%;height:8px;background:var(--off-white);border-radius:4px;overflow:hidden}.stock-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.dash-stock-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.dash-threshold-btn{background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:11px;cursor:pointer;color:var(--charcoal);transition:border-color .15s}.dash-threshold-btn:hover{border-color:var(--charcoal)}.dash-threshold-editor{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);padding:10px 12px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md)}.dash-threshold-label{font-size:13px;color:var(--charcoal);flex:1}.dash-threshold-input{width:60px;text-align:center;padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;background:var(--white);color:var(--black);outline:none}.dash-threshold-input:focus{border-color:var(--charcoal)}.dash-controls{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.dash-filter-group{display:flex;gap:4px;flex-wrap:wrap}.dash-filter-btn{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-full);padding:4px 10px;font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--charcoal);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.dash-filter-btn:hover{border-color:var(--charcoal)}.dash-filter-btn.active{background:var(--black);color:var(--white);border-color:var(--black)}.dash-sort-select{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:11px;color:var(--charcoal);outline:none;cursor:pointer}.revenue-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.revenue-cell{background:var(--off-white);padding:16px 12px;text-align:center}.revenue-value{font-family:var(--font-mono);font-size:16px;font-weight:700;color:var(--black);word-break:break-all}.revenue-value.revenue-name{font-family:var(--font-body);font-size:14px;font-weight:600}.revenue-label{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:var(--stone);margin-top:4px}.revenue-prompt{width:100%;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;font-family:var(--font-body);font-size:14px;color:var(--charcoal);cursor:pointer;text-align:center;transition:border-color .15s;-webkit-tap-highlight-color:transparent}.revenue-prompt:hover{border-color:var(--charcoal)}.price-editor-modal .modal-body{max-height:70vh;overflow-y:auto}.price-list{display:flex;flex-direction:column;gap:8px}.price-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.price-product-name{font-size:14px;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-input-wrap{display:flex;align-items:center;gap:2px}.price-input{width:100px;text-align:right;font-family:var(--font-mono);font-size:14px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;color:var(--black);outline:none}.price-input:focus{border-color:var(--charcoal)}.price-suffix{font-family:var(--font-mono);font-size:13px;color:var(--stone)}.price-confirm{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-md)}.price-confirm-header{display:flex;flex-direction:column;gap:2px}.price-confirm-title{font-family:var(--font-display);font-size:16px;font-weight:700}.price-confirm-subtitle{font-family:var(--font-body);font-size:13px;color:var(--stone)}.price-confirm-list{display:flex;flex-direction:column}.price-confirm-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);gap:var(--space-md)}.price-confirm-row:last-child{border-bottom:none}.price-confirm-name{font-family:var(--font-body);font-size:14px;font-weight:400;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}.price-confirm-ai{font-family:var(--font-mono);font-size:9px;font-weight:700;color:var(--stone);background:var(--white);border:1px solid var(--border);border-radius:3px;padding:1px 4px;flex-shrink:0}.btn-confirm-prices{background:var(--off-white);border:1px solid var(--border);color:var(--black);font-family:var(--font-body);font-size:14px;font-weight:500;height:44px;width:100%;border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s}.btn-confirm-prices:hover{border-color:var(--charcoal)}.product-confirm{display:flex;flex-direction:column;gap:var(--space-md)}.pc-header{display:flex;flex-direction:column;gap:2px}.pc-header-row{display:flex;align-items:center;justify-content:space-between}.pc-confirm-all-btn{font-size:12px!important;padding:4px 10px!important}.pc-title{font-family:var(--font-display);font-size:16px;font-weight:700}.pc-subtitle{font-family:var(--font-body);font-size:13px;color:var(--stone)}.pc-list{display:flex;flex-direction:column;gap:8px}.pc-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md)}.pc-card-confirmed{border-color:var(--charcoal)}.pc-card-removed{opacity:.4}.pc-card-removed .pc-name{text-decoration:line-through}.pc-check{width:28px;height:28px;min-width:28px;border-radius:50%;border:2px solid var(--border);background:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;color:var(--white);flex-shrink:0}.pc-check:hover{border-color:var(--charcoal)}.pc-check-on{background:var(--black);border-color:var(--black)}.pc-check:disabled{opacity:.3;cursor:default}.pc-crop{width:56px;height:56px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--off-white)}.pc-crop img{width:100%;height:100%;object-fit:cover}.pc-crop-placeholder{width:100%;height:100%;background:var(--off-white)}.pc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.pc-name{font-family:var(--font-body);font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-name-input{font-family:var(--font-body);font-size:15px;font-weight:500;border:1px solid var(--charcoal);border-radius:var(--radius-sm);padding:4px 8px;outline:none;width:100%;color:var(--black);background:var(--white)}.pc-meta{font-family:var(--font-mono);font-size:10px;color:var(--stone);text-transform:uppercase;letter-spacing:.5px}.pc-price-row{display:flex;align-items:center;gap:2px}.pc-price-input{width:80px;font-family:var(--font-mono);font-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px;text-align:right;outline:none;color:var(--black);background:var(--white);-moz-appearance:textfield}.pc-price-input::-webkit-inner-spin-button,.pc-price-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pc-price-input:focus{border-color:var(--charcoal)}.pc-price-suffix{font-family:var(--font-mono);font-size:13px;color:var(--stone)}.pc-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.pc-action-btn{background:none;border:none;cursor:pointer;padding:4px;color:var(--charcoal);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;transition:color .15s}.pc-action-btn:hover{color:var(--black)}.pc-action-remove{color:var(--stone)}.pc-action-remove:hover{color:var(--black)}.pc-saved{background:var(--off-white);border:1px solid var(--black);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;font-weight:600;font-size:14px}@media (min-width: 768px){.app-shell{box-shadow:0 0 40px #0000000d}}
