Spaces:
Runtime error
Runtime error
| :root { | |
| --green: #1A6B3C; | |
| --green-dark: #0F4525; | |
| --green-mid: #2A8A52; | |
| --green-lite: #E6F4ED; | |
| --green-ring: rgba(26,107,60,0.12); | |
| --gold: #D4A017; | |
| --gold-dark: #A87C0D; | |
| --gold-lite: #FDF8E8; | |
| --orange: #FF6B35; | |
| --orange-lite: #FFF1EC; | |
| --surface: #FFFFFF; | |
| --surface2: #F2F6F3; | |
| --surface3: #E6F4ED; | |
| --text: #0C1A10; | |
| --text2: #3A5244; | |
| --text3: #8BA898; | |
| --border: #D4E8DA; | |
| --border2: #C0D9C8; | |
| --danger: #D63031; | |
| --danger-lite: #FDECEA; | |
| --nav-h: 68px; | |
| --r: 18px; | |
| --r-sm: 12px; | |
| --shadow-sm: 0 2px 8px rgba(26,107,60,0.08); | |
| --shadow: 0 4px 20px rgba(26,107,60,0.12); | |
| --shadow-gold: 0 4px 20px rgba(212,160,23,0.25); | |
| --shadow-lg: 0 6px 24px rgba(15,69,37,0.4); | |
| } | |
| * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; } | |
| body { | |
| font-family: 'Poppins', sans-serif; | |
| background: var(--surface2); | |
| color: var(--text); | |
| max-width: 480px; | |
| margin: 0 auto; | |
| min-height: 100vh; | |
| padding-bottom: calc(var(--nav-h) + 12px); | |
| } | |
| .screen { display:none; } | |
| .screen.active { display:block; } | |
| /* ββ TOPBAR ββ */ | |
| .topbar { | |
| background: linear-gradient(135deg, var(--green-dark) 0%, var(--green) 60%, var(--green-mid) 100%); | |
| padding: 10px 16px 10px; | |
| display: flex; align-items: center; justify-content: space-between; | |
| position: sticky; top:0; z-index:200; | |
| box-shadow: 0 2px 12px rgba(15,69,37,0.3); | |
| } | |
| .topbar-logo { display:flex; align-items:center; gap:10px; flex:1; } | |
| .logo-svg { width:34px; height:34px; flex-shrink:0; } | |
| .logo-wordmark { display:flex; flex-direction:column; line-height:1.1; } | |
| .logo-wordmark .w1 { font-size: 15px; font-weight: 900; color: #fff; letter-spacing: -0.5px; } | |
| .logo-wordmark .w2 { font-size: 8px; font-weight: 600; color: var(--gold); letter-spacing: 1.2px; text-transform: uppercase; } | |
| .logo-wordmark .w3 { font-size: 9px; font-weight: 500; color: rgba(255,255,255,0.65); letter-spacing: 0.3px; } | |
| .topbar-profit { | |
| background: rgba(255,255,255,0.13); | |
| border: 1.5px solid rgba(255,255,255,0.22); | |
| border-radius: 24px; padding: 5px 12px; | |
| display: flex; flex-direction: column; align-items: flex-end; cursor:pointer; | |
| } | |
| .tb-label { font-size: 8px; font-weight: 500; color: rgba(255,255,255,0.65); text-transform: uppercase; letter-spacing: 0.8px; } | |
| .tb-amount { font-size: 14px; font-weight: 800; color: #7BFFB0; line-height: 1.1; } | |
| .topbar-settings { | |
| margin-left:8px; width:32px; height:32px; border-radius:50%; | |
| background:rgba(255,255,255,0.12); border:none; color:#fff; | |
| font-size:15px; cursor:pointer; display:flex; align-items:center; justify-content:center; | |
| } | |
| /* ββ OFFLINE BANNER ββ */ | |
| .offline-banner { | |
| display:none; background:#7f1d1d; color:#fca5a5; | |
| padding:8px 16px; font-size:12px; font-weight:600; | |
| text-align:center; position:sticky; top:54px; z-index:199; | |
| } | |
| .offline-banner.show { display:block; } | |
| /* ββ BOTTOM NAV ββ */ | |
| .bottom-nav { | |
| position:fixed; bottom:0; left:50%; transform:translateX(-50%); | |
| width:100%; max-width:480px; height:var(--nav-h); | |
| background:var(--surface); border-top:1px solid var(--border); | |
| display:flex; align-items:center; | |
| z-index:300; box-shadow:0 -4px 20px rgba(0,0,0,0.06); | |
| } | |
| .nav-item { | |
| flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; | |
| cursor:pointer; padding:8px 4px; | |
| background:none; border:none; position:relative; transition:all 0.15s; | |
| } | |
| .nav-icon { font-size:20px; line-height:1; } | |
| .nav-label { font-size:10px; font-weight:600; color:var(--text3); font-family:'Poppins',sans-serif; } | |
| .nav-item.active .nav-label { color:var(--green); } | |
| .nav-item.active .nav-icon { transform:translateY(-1px); } | |
| .nav-item.active::after { | |
| content: ''; position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%); | |
| width: 18px; height: 3px; background: var(--green); border-radius: 2px; | |
| } | |
| .nav-item.nav-sell .nav-label { color:var(--orange); font-weight:700; } | |
| .nav-item.nav-sell.active::after { background:var(--orange); } | |
| .nav-item.nav-sell.active .nav-label { color:var(--orange); } | |
| /* ββ SHARED ββ */ | |
| .pad { padding:16px; } | |
| .card { background:var(--surface); border-radius:var(--r); border:1px solid var(--border); box-shadow:var(--shadow-sm); } | |
| .card-body { padding:16px; } | |
| .section-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--text3); margin-bottom:10px; } | |
| .divider { height:1px; background:var(--border); margin:14px 0; } | |
| /* ββ FORMS ββ */ | |
| .form-group { margin-bottom:14px; } | |
| .form-label { font-size:12px; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:0.6px; margin-bottom:6px; display:flex; align-items:center; gap:5px; } | |
| .form-label .opt { font-size:10px; font-weight:500; color:var(--text3); text-transform:none; letter-spacing:0; } | |
| .form-input { | |
| width:100%; padding:12px 14px; | |
| border:1.5px solid var(--border); border-radius:var(--r-sm); | |
| font-size:15px; font-weight:600; color:var(--text); | |
| background:var(--surface); outline:none; | |
| font-family:'Poppins',sans-serif; | |
| transition:border-color 0.15s, box-shadow 0.15s; | |
| -webkit-appearance:none; | |
| } | |
| .form-input:focus { border-color:var(--green); box-shadow:0 0 0 3px var(--green-ring); } | |
| .form-input::placeholder { color:var(--text3); font-weight:400; font-size:13px; } | |
| select.form-input { cursor:pointer; } | |
| /* ββ BUTTONS ββ */ | |
| .btn { | |
| width:100%; border:none; border-radius:var(--r-sm); | |
| padding:14px; font-size:14px; font-weight:700; | |
| font-family:'Poppins',sans-serif; cursor:pointer; | |
| transition:opacity 0.15s, transform 0.12s; | |
| display:flex; align-items:center; justify-content:center; gap:6px; | |
| } | |
| .btn:active { transform:scale(0.97); opacity:0.9; } | |
| .btn-green { background: linear-gradient(135deg, var(--green-mid), var(--green-dark)); color: white; box-shadow: 0 4px 16px rgba(26,107,60,0.30); } | |
| .btn-gold { background: linear-gradient(135deg, var(--gold), var(--gold-dark)); color: white; box-shadow: var(--shadow-gold); } | |
| .btn-orange { background: linear-gradient(135deg, var(--orange), #FF3D00); color: white; box-shadow: 0 4px 16px rgba(255,107,53,0.35); } | |
| .btn-outline { background:var(--surface); border:1.5px solid var(--border); color:var(--text2); } | |
| .btn-ghost { background:var(--green-lite); color:var(--green); } | |
| .btn-sm { padding:8px 14px; font-size:13px; width:auto; border-radius:8px; } | |
| .btn-xs { padding:6px 10px; font-size:12px; width:auto; border-radius:7px; } | |
| /* ββ PILLS ββ */ | |
| .pill { display:inline-flex; align-items:center; gap:3px; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700; } | |
| .pill-green { background:var(--green-lite); color:var(--green); } | |
| .pill-gold { background:var(--gold-lite); color:var(--gold); } | |
| .pill-orange { background:var(--orange-lite); color:var(--orange); } | |
| .pill-red { background:var(--danger-lite); color:var(--danger); } | |
| .pill-gray { background:var(--surface3); color:var(--text2); } | |
| /* ββ SCREEN HEADER ββ */ | |
| .screen-header { | |
| background:var(--surface); border-bottom:1px solid var(--border); | |
| padding:12px 16px; display:flex; align-items:center; gap:12px; | |
| position:sticky; top:0; z-index:100; | |
| } | |
| .back-btn { | |
| width:34px; height:34px; border-radius:9px; background:var(--surface3); | |
| border:none; font-size:16px; cursor:pointer; | |
| display:flex; align-items:center; justify-content:center; color:var(--text2); | |
| } | |
| .sh-title { font-size:16px; font-weight:800; color:var(--text); } | |
| .sh-sub { font-size:11px; color:var(--text3); } | |
| /* ββ INFO BOX ββ */ | |
| .info-box { border-radius:var(--r-sm); padding:12px 14px; font-size:13px; font-weight:600; line-height:1.5; } | |
| .info-box.green { background:var(--green-lite); color:var(--green-dark); border-left:3px solid var(--green); } | |
| .info-box.orange { background:var(--orange-lite); color:var(--orange); border-left:3px solid var(--orange); } | |
| /* ββ ALERT ββ */ | |
| .alert-banner { | |
| margin:8px 16px 0; padding:10px 14px; border-radius:var(--r-sm); | |
| background:var(--danger-lite); border:1px solid rgba(220,38,38,0.15); | |
| display:flex; align-items:center; gap:8px; | |
| font-size:13px; font-weight:600; color:var(--danger); | |
| } | |
| /* βββ HOME SCREEN βββ */ | |
| .home-hero { | |
| background: linear-gradient(160deg, var(--green-dark) 0%, var(--green) 55%, var(--green-mid) 100%); | |
| padding: 18px 20px 24px; position: relative; overflow: hidden; | |
| } | |
| .home-hero::before { | |
| content: ''; position: absolute; top: -30px; right: -30px; | |
| width: 160px; height: 160px; border-radius: 50%; background: rgba(255,255,255,0.05); | |
| } | |
| .hero-shop-info { | |
| display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; | |
| } | |
| .hero-shop-name { font-size:16px; font-weight:800; color:#fff; } | |
| .hero-owner-name { font-size:11px; color:rgba(255,255,255,0.65); margin-top:1px; } | |
| .hero-date-badge { | |
| background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.2); | |
| border-radius:8px; padding:5px 10px; text-align:right; | |
| } | |
| .hero-date-badge .hdb-day { font-size:18px; font-weight:800; color:#fff; line-height:1; } | |
| .hero-date-badge .hdb-mon { font-size:10px; color:rgba(255,255,255,0.7); font-weight:600; letter-spacing:0.5px; } | |
| .hero-lbl { font-size:11px; font-weight:600; color:rgba(255,255,255,0.65); letter-spacing:0.8px; text-transform: uppercase; } | |
| .hero-amt { font-size:46px; font-weight:900; color:white; line-height:1.1; letter-spacing:-2px; margin:3px 0 2px; } | |
| .hero-amt .cur { font-size:26px; vertical-align:super; font-weight:700; } | |
| .hero-sub { font-size:12px; color:rgba(255,255,255,0.65); font-weight:500; } | |
| .hero-stats { display:flex; gap:8px; margin-top:14px; } | |
| .hero-stat { | |
| flex:1; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.1); | |
| border-radius:10px; padding:10px; text-align:center; | |
| } | |
| .hs-val { font-size:15px; font-weight:800; color:white; } | |
| .hs-val.gold { color:var(--gold); } | |
| .hs-lbl { font-size:10px; color:rgba(255,255,255,0.6); font-weight:500; margin-top:2px; } | |
| .quick-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:14px 16px; } | |
| .qa-btn { | |
| background:var(--surface); border-radius:var(--r); padding:16px 12px; | |
| display:flex; flex-direction:column; align-items:center; gap:7px; | |
| border:1.5px solid var(--border); cursor:pointer; transition:all 0.15s; | |
| box-shadow:var(--shadow-sm); | |
| } | |
| .qa-btn:active { transform:scale(0.96); } | |
| .qa-btn.buy { border-color:rgba(5,150,105,0.3); background:var(--green-lite); } | |
| .qa-btn.sell { border-color:rgba(234,88,12,0.3); background:var(--orange-lite); } | |
| .qa-icon { font-size:26px; } | |
| .qa-label { font-size:13px; font-weight:700; color:var(--text); } | |
| .qa-sub { font-size:11px; color:var(--text3); font-weight:500; } | |
| /* Today card */ | |
| .glance-card { margin:0 16px 16px; } | |
| .glance-header { | |
| background: var(--gold-lite); border-bottom: 1.5px solid rgba(212,160,23,0.2); | |
| padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; | |
| border-radius: var(--r) var(--r) 0 0; | |
| } | |
| .glance-title { font-size: 13px; font-weight: 700; color: var(--gold-dark); } | |
| .glance-rows { } | |
| .g-row { | |
| display:flex; justify-content:space-between; align-items:center; | |
| padding:10px 14px; border-bottom:1px solid var(--border); | |
| } | |
| .g-row:last-child { border-bottom:none; } | |
| .g-lbl { font-size:13px; color:var(--text2); font-weight:500; } | |
| .g-val { font-size:14px; font-weight:700; color:var(--text); } | |
| .g-val.green { color:var(--green); } | |
| .g-val.orange { color:var(--orange); } | |
| /* βββ BUY SCREEN βββ */ | |
| .buy-step-card { | |
| background:var(--surface); border-radius:var(--r); | |
| border:1px solid var(--border); box-shadow:var(--shadow-sm); padding:16px; | |
| } | |
| .buy-step-label { | |
| font-size:11px; font-weight:700; text-transform:uppercase; | |
| letter-spacing:1px; color:var(--text3); margin-bottom:12px; | |
| } | |
| .buy-mode-btn { | |
| padding:10px; border-radius:var(--r-sm); font-size:13px; font-weight:700; | |
| font-family:'Poppins',sans-serif; cursor:pointer; border:2px solid var(--border); | |
| background:var(--surface2); color:var(--text2); transition:all 0.15s; | |
| } | |
| .buy-mode-btn.active { background:var(--green-lite); border-color:var(--green); color:var(--green); } | |
| .calc-box { | |
| background:var(--green-lite); border:1px solid rgba(5,150,105,0.15); | |
| border-radius:var(--r-sm); padding:12px 14px; display:none; | |
| } | |
| .calc-box.show { display:block; } | |
| .calc-row { display:flex; justify-content:space-between; align-items:center; padding:3px 0; } | |
| .cr-label { font-size:12px; color:var(--text2); font-weight:500; } | |
| .cr-val { font-size:13px; font-weight:700; color:var(--green); } | |
| .cr-val.warn { color:var(--orange); } | |
| /* βββ SELL SCREEN βββ */ | |
| .stock-pill-row { display:flex; align-items:center; gap:8px; margin-top:7px; flex-wrap:wrap; } | |
| .price-display { | |
| display:flex; align-items:center; justify-content:space-between; | |
| background:var(--green-lite); border:1.5px solid rgba(5,150,105,0.2); | |
| border-radius:var(--r-sm); padding:11px 14px; cursor:pointer; | |
| } | |
| .pd-label { font-size:9px; font-weight:700; color:var(--text3); text-transform:uppercase; letter-spacing:0.5px; } | |
| .pd-value { font-size:22px; font-weight:800; color:var(--green); line-height:1.2; } | |
| .pd-tap { font-size:11px; color:var(--text3); } | |
| .cart-section { | |
| margin:10px 16px; background:var(--surface); border-radius:var(--r); | |
| border:1px solid var(--border); box-shadow:var(--shadow-sm); display:none; | |
| } | |
| .cart-section.show { display:block; } | |
| .cart-header { | |
| background:var(--green-lite); padding:10px 14px; | |
| display:flex; justify-content:space-between; align-items:center; | |
| border-bottom:1px solid rgba(5,150,105,0.1); border-radius:var(--r) var(--r) 0 0; | |
| } | |
| .ch-title { font-size:13px; font-weight:700; color:var(--green); } | |
| .ch-total { font-size:14px; font-weight:800; color:var(--green-dark); } | |
| .cart-item { | |
| display:flex; align-items:center; justify-content:space-between; | |
| padding:10px 14px; border-bottom:1px solid var(--border); | |
| } | |
| .cart-item:last-child { border-bottom:none; } | |
| .ci-name { font-size:13px; font-weight:600; } | |
| .ci-sub { font-size:11px; color:var(--text3); margin-top:1px; } | |
| .ci-total { font-size:14px; font-weight:700; color:var(--green); } | |
| .ci-remove { | |
| width:26px; height:26px; border-radius:7px; | |
| background:var(--danger-lite); border:none; color:var(--danger); | |
| font-size:13px; cursor:pointer; | |
| display:flex; align-items:center; justify-content:center; margin-left:4px; | |
| } | |
| .ci-edit { | |
| width:26px; height:26px; border-radius:7px; | |
| background:var(--gold-lite); border:none; color:var(--gold); | |
| font-size:13px; cursor:pointer; | |
| display:flex; align-items:center; justify-content:center; margin-left:4px; | |
| } | |
| /* Cart all-zero banner */ | |
| .cart-complete-banner { | |
| display:none; margin:0 16px 8px; padding:12px 14px; border-radius:var(--r-sm); | |
| background:var(--green-lite); border:1.5px solid rgba(26,107,60,0.2); | |
| font-size:13px; font-weight:600; color:var(--green-dark); | |
| text-align:center; | |
| } | |
| .cart-complete-banner.show { display:block; } | |
| .item-total-box { | |
| display:none; align-items:center; justify-content:space-between; | |
| background:var(--surface3); border-radius:9px; padding:10px 14px; | |
| margin-top:8px; border:1px solid var(--border); | |
| } | |
| .item-total-box.show { display:flex; } | |
| .itb-label { font-size:12px; color:var(--text3); font-weight:500; } | |
| .itb-value { font-size:18px; font-weight:800; color:var(--text); } | |
| .cart-buttons { display:none; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; } | |
| .cart-buttons.show { display:grid; } | |
| /* Cart complete β only show done */ | |
| .cart-buttons.cart-full { grid-template-columns:1fr; } | |
| .final-section { margin:0 16px 12px; display:none; } | |
| .final-section.show { display:block; } | |
| .final-card { background:var(--surface); border-radius:var(--r); border:1px solid var(--border); box-shadow:var(--shadow-sm); overflow:hidden; } | |
| .final-card-header { | |
| background: linear-gradient(135deg, var(--green-dark), var(--green)); | |
| padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; | |
| } | |
| .fch-title { font-size:13px; font-weight:700; color:rgba(255,255,255,0.7); } | |
| .fch-amount { font-size:22px; font-weight:800; color:#6ee7b7; } | |
| .final-card-body { padding:14px; } | |
| .profit-preview { display:none; background:var(--green-lite); border-radius:9px; padding:12px 14px; margin-top:10px; } | |
| .profit-preview.show { display:block; } | |
| .pp-row { display:flex; justify-content:space-between; padding:4px 0; } | |
| .pp-label { font-size:12px; color:var(--text2); font-weight:500; } | |
| .pp-val { font-size:14px; font-weight:700; } | |
| .pp-val.green { color:var(--green); } | |
| .pp-val.red { color:var(--danger); } | |
| .pp-val.orange { color:var(--orange); } | |
| /* βββ DASHBOARD βββ */ | |
| .tab-bar { | |
| display:flex; background:var(--surface); border-bottom:1px solid var(--border); | |
| overflow-x:auto; scrollbar-width:none; position:sticky; top:0; z-index:99; | |
| } | |
| .tab-bar::-webkit-scrollbar { display:none; } | |
| .tab-btn { | |
| flex:1; min-width:68px; padding:12px 6px; border:none; background:none; | |
| font-size:11px; font-weight:700; color:var(--text3); cursor:pointer; | |
| font-family:'Poppins',sans-serif; | |
| border-bottom:2px solid transparent; margin-bottom:-1px; | |
| white-space:nowrap; transition:all 0.15s; | |
| } | |
| .tab-btn.active { color:var(--green); border-bottom-color:var(--green); } | |
| .tab-content { display:none; } | |
| .tab-content.active { display:block; } | |
| .stats-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; } | |
| .stat-card { | |
| background:var(--surface); border-radius:var(--r); padding:14px; | |
| border:1px solid var(--border); box-shadow:var(--shadow-sm); | |
| display:flex; flex-direction:column; gap:5px; | |
| } | |
| .sc-icon { font-size:20px; } | |
| .sc-label { font-size:10px; color:var(--text3); font-weight:700; text-transform:uppercase; letter-spacing:0.5px; } | |
| .sc-value { font-size:20px; font-weight:800; color:var(--text); line-height:1.2; } | |
| .sc-value.green { color:var(--green); } | |
| .sc-value.orange { color:var(--orange); } | |
| .sc-value.gold { color:var(--gold); } | |
| .stock-row { | |
| background:var(--surface); border-radius:var(--r-sm); padding:12px 14px; | |
| margin-bottom:8px; display:flex; align-items:center; justify-content:space-between; | |
| border:1px solid var(--border); | |
| } | |
| .stock-row.danger { border-left:3px solid var(--danger); } | |
| .stock-row.warning { border-left:3px solid var(--gold); } | |
| .stock-row.good { border-left:3px solid var(--green); } | |
| .sk-name { font-size:13px; font-weight:600; } | |
| .sk-meta { font-size:11px; color:var(--text3); margin-top:2px; } | |
| .sk-qty { font-size:14px; font-weight:800; } | |
| .sk-qty.danger { color:var(--danger); } | |
| .sk-qty.warning { color:var(--gold); } | |
| .sk-qty.good { color:var(--green); } | |
| .top-row { | |
| background:var(--surface); border-radius:var(--r); padding:13px 14px; | |
| margin-bottom:8px; border:1px solid var(--border); box-shadow:var(--shadow-sm); | |
| } | |
| .top-row-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; } | |
| .top-row-name { font-size:14px; font-weight:700; } | |
| .top-row-profit { font-size:15px; font-weight:800; color:var(--green); } | |
| .top-row-stats { display:flex; gap:12px; flex-wrap:wrap; } | |
| .top-stat { font-size:11px; color:var(--text3); } | |
| .top-stat strong { color:var(--text2); } | |
| /* ββ EDIT PRICES TAB ββ */ | |
| .price-row { | |
| display:flex; align-items:center; padding:12px 14px; | |
| border-bottom:1px solid var(--border); gap:10px; | |
| } | |
| .price-row:last-child { border-bottom:none; } | |
| .eci-name { flex:1; font-size:13px; font-weight:600; } | |
| .eci-price { font-size:13px; font-weight:700; color:var(--green); margin-right:4px; } | |
| .eci-edit-btn { | |
| padding:5px 10px; background:var(--gold-lite); | |
| border:1px solid rgba(217,119,6,0.2); border-radius:7px; | |
| font-size:11px; font-weight:700; color:var(--gold); | |
| cursor:pointer; font-family:'Poppins',sans-serif; | |
| } | |
| .eci-edit-row { | |
| display:none; flex-direction:column; gap:10px; | |
| padding:14px; background:var(--surface3); | |
| border-top:1px solid var(--border); | |
| } | |
| .eci-edit-row.show { display:flex; } | |
| .eci-edit-input { | |
| flex:1; padding:8px 12px; border:1.5px solid rgba(217,119,6,0.3); | |
| border-radius:8px; font-size:14px; font-weight:700; color:var(--gold); | |
| background:#fff; outline:none; font-family:'Poppins',sans-serif; | |
| } | |
| .eci-name-input { | |
| flex:1; padding:8px 12px; border:1.5px solid rgba(26,107,60,0.25); | |
| border-radius:8px; font-size:14px; font-weight:700; color:var(--text); | |
| background:#fff; outline:none; font-family:'Poppins',sans-serif; | |
| } | |
| /* ββ HISTORY TAB ββ */ | |
| .hist-filter { | |
| display:flex; align-items:center; gap:6px; | |
| padding:10px 14px; background:var(--surface3); | |
| border-bottom:1px solid var(--border); flex-wrap:wrap; | |
| } | |
| .hist-filter input[type="date"] { | |
| flex:1; min-width:0; padding:6px 9px; font-size:11px; font-weight:600; | |
| border:1px solid var(--border); border-radius:7px; background:var(--surface); | |
| color:var(--text2); font-family:'Poppins',sans-serif; outline:none; | |
| } | |
| .hist-filter input[type="date"]:focus { border-color:var(--green); } | |
| .hist-filter .sep { font-size:11px; color:var(--text3); } | |
| .hist-filter .go-btn { | |
| padding:6px 12px; background:var(--green); color:#fff; border:none; | |
| border-radius:7px; font-size:11px; font-weight:700; cursor:pointer; | |
| font-family:'Poppins',sans-serif; white-space:nowrap; | |
| } | |
| .hist-day-row { | |
| background:var(--surface); margin:0 16px 8px; border-radius:var(--r); | |
| border:1px solid var(--border); overflow:hidden; cursor:pointer; | |
| } | |
| .hdr-head { | |
| display:flex; align-items:center; justify-content:space-between; | |
| padding:12px 14px; | |
| } | |
| .hdr-date { font-size:13px; font-weight:700; color:var(--text); } | |
| .hdr-dow { font-size:11px; color:var(--text3); font-weight:500; } | |
| .hdr-right { display:flex; align-items:center; gap:10px; } | |
| .hdr-profit { font-size:14px; font-weight:800; color:var(--green); } | |
| .hdr-items { font-size:11px; color:var(--text3); font-weight:600; } | |
| .hdr-chevron { font-size:12px; color:var(--text3); transition:transform 0.2s; } | |
| .hdr-chevron.open { transform:rotate(180deg); } | |
| .hdr-detail { | |
| display:none; border-top:1px solid var(--border); | |
| padding:10px 14px; background:var(--surface2); | |
| } | |
| .hdr-detail.show { display:block; } | |
| .hdr-detail-grid { | |
| display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:8px; | |
| } | |
| .hd-cell { background:var(--surface); border-radius:8px; padding:8px 10px; border:1px solid var(--border); } | |
| .hd-lbl { font-size:10px; color:var(--text3); font-weight:600; text-transform:uppercase; letter-spacing:0.5px; } | |
| .hd-val { font-size:14px; font-weight:800; margin-top:2px; } | |
| .hd-val.green { color:var(--green); } | |
| .hd-val.orange { color:var(--orange); } | |
| .hist-empty { text-align:center; padding:40px 20px; color:var(--text3); } | |
| .hist-loading { text-align:center; padding:30px; color:var(--text3); font-size:13px; } | |
| .hdr-left { display:flex; flex-direction:column; gap:2px; } | |
| .hdr-summary { display:flex; flex-direction:column; align-items:flex-end; gap:1px; } | |
| .hist-section-label { | |
| font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.8px; | |
| color:var(--text3); padding:8px 0 6px; border-top:1px solid var(--border); margin-top:4px; | |
| } | |
| .hist-items-list { border-radius:var(--r-sm); overflow:hidden; border:1px solid var(--border); margin-bottom:4px; } | |
| .hist-sale-row { | |
| display:flex; align-items:center; justify-content:space-between; | |
| padding:10px 12px; background:var(--surface); | |
| border-bottom:1px solid var(--border); | |
| } | |
| .hist-sale-row:last-child { border-bottom:none; } | |
| .hsr-left { flex:1; } | |
| .hsr-name { font-size:13px; font-weight:700; color:var(--text); } | |
| .hsr-meta { font-size:11px; color:var(--text3); margin-top:2px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; } | |
| .hsr-bargain { | |
| background:var(--orange-lite); color:var(--orange); | |
| font-size:10px; font-weight:600; padding:1px 6px; border-radius:10px; | |
| text-decoration:line-through; | |
| } | |
| .hsr-right { text-align:right; } | |
| .hsr-total { font-size:14px; font-weight:800; color:var(--green); } | |
| .hsr-profit { font-size:10px; font-weight:600; color:var(--green-mid); margin-top:1px; } | |
| .hist-buy-row { | |
| display:flex; align-items:center; justify-content:space-between; | |
| padding:10px 12px; background:var(--surface); | |
| border-bottom:1px solid var(--border); | |
| } | |
| .hist-buy-row:last-child { border-bottom:none; } | |
| .hbr-name { font-size:13px; font-weight:700; color:var(--text); } | |
| .hbr-meta { font-size:11px; color:var(--text3); margin-top:2px; } | |
| .hbr-total { font-size:14px; font-weight:800; color:var(--orange); } | |
| .hist-type-bar { | |
| display:flex; gap:6px; padding:10px 14px; background:var(--surface); | |
| border-bottom:1px solid var(--border); | |
| } | |
| .htype-btn { | |
| padding:5px 12px; border-radius:20px; font-size:11px; font-weight:700; | |
| border:1px solid var(--border); background:var(--surface3); color:var(--text2); | |
| cursor:pointer; font-family:'Poppins',sans-serif; | |
| } | |
| .htype-btn.active { background:var(--green); color:#fff; border-color:var(--green); } | |
| /* ββ EMPTY STATE ββ */ | |
| .empty-state { text-align:center; padding:40px 20px; color:var(--text3); } | |
| .es-icon { font-size:44px; margin-bottom:10px; } | |
| .es-title { font-size:14px; font-weight:600; color:var(--text2); margin-bottom:5px; } | |
| .es-sub { font-size:12px; } | |
| /* ββ TOAST ββ */ | |
| .toast { | |
| display: none; position: fixed; | |
| bottom: calc(var(--nav-h) + 16px); left: 50%; transform: translateX(-50%); | |
| background: var(--green-dark); color: white; | |
| padding: 12px 22px; border-radius: 30px; font-size: 13px; font-weight: 600; | |
| z-index: 500; box-shadow: var(--shadow-lg); | |
| white-space: nowrap; max-width: 90vw; text-align: center; | |
| } | |
| .toast.show { display: block; animation: toastIn 0.3s ease; } | |
| @keyframes toastIn { | |
| from { opacity:0; transform:translateX(-50%) translateY(10px); } | |
| to { opacity:1; transform:translateX(-50%) translateY(0); } | |
| } | |
| /* ββ SETTINGS MODAL ββ */ | |
| .modal-backdrop { | |
| display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:600; overflow-y:auto; | |
| } | |
| .modal-backdrop.show { display:block; } | |
| .modal-sheet { | |
| background:var(--surface); border-radius:var(--r) var(--r) 0 0; | |
| margin-top:80px; min-height:calc(100vh - 80px); | |
| max-width:480px; margin-left:auto; margin-right:auto; | |
| } | |
| .modal-header { | |
| background:linear-gradient(135deg,var(--green-dark),var(--green)); | |
| padding:14px 16px; border-radius:var(--r) var(--r) 0 0; | |
| display:flex; justify-content:space-between; align-items:center; | |
| position:sticky; top:0; z-index:10; | |
| } | |
| .modal-title { font-size:15px; font-weight:800; color:#fff; } | |
| .modal-close { | |
| background:rgba(255,255,255,0.15); border:none; color:#fff; | |
| width:32px; height:32px; border-radius:8px; font-size:18px; | |
| cursor:pointer; display:flex; align-items:center; justify-content:center; | |
| } | |
| .modal-body { padding:16px; } | |
| /* ββ CONFIRM DIALOG ββ */ | |
| .confirm-overlay { | |
| display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); | |
| z-index:700; align-items:center; justify-content:center; | |
| } | |
| .confirm-overlay.show { display:flex; } | |
| .confirm-box { | |
| background:var(--surface); border-radius:var(--r); padding:20px; | |
| width:calc(100% - 48px); max-width:340px; box-shadow:var(--shadow-lg); | |
| } | |
| .confirm-title { font-size:15px; font-weight:800; margin-bottom:8px; } | |
| .confirm-msg { font-size:13px; color:var(--text2); margin-bottom:18px; line-height:1.5; } | |
| .confirm-btns { display:flex; gap:10px; } | |
| /* ββ EDIT CART ITEM ββ */ | |
| .edit-cart-overlay { | |
| display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); | |
| z-index:700; align-items:flex-end; justify-content:center; | |
| } | |
| .edit-cart-overlay.show { display:flex; } | |
| .edit-cart-box { | |
| background:var(--surface); border-radius:var(--r) var(--r) 0 0; | |
| padding:20px; width:100%; max-width:480px; box-shadow:var(--shadow-lg); | |
| } | |
| .edit-cart-title { font-size:15px; font-weight:800; margin-bottom:14px; color:var(--text); } | |
| /* ββ BUY SCREEN TAB BAR ββ */ | |
| .buy-tab-bar { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr 1fr; | |
| background: var(--surface); | |
| border-radius: var(--r-sm); | |
| border: 1px solid var(--border); | |
| overflow: hidden; | |
| margin-bottom: 10px; | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .buy-tab-btn { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 3px; | |
| padding: 14px 4px; | |
| border: none; | |
| background: transparent; | |
| cursor: pointer; | |
| font-family: 'Poppins', sans-serif; | |
| border-right: 1px solid var(--border); | |
| transition: background 0.15s; | |
| -webkit-tap-highlight-color: transparent; | |
| } | |
| .buy-tab-btn:last-child { border-right: none; } | |
| .buy-tab-btn:active { opacity: 0.7; } | |
| .btab-icon { font-size: 22px; line-height: 1; } | |
| .btab-label { font-size: 12px; font-weight: 700; color: var(--text3); } | |
| .buy-tab-btn.active { background: var(--green-lite); } | |
| .buy-tab-btn.active .btab-label { color: var(--green); } | |
| .buy-tab-panel { | |
| background: var(--surface); | |
| border-radius: var(--r-sm); | |
| border: 1px solid var(--border); | |
| padding: 14px; | |
| box-sizing: border-box; | |
| width: 100%; | |
| box-shadow: var(--shadow-sm); | |
| } | |