@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;700;900&family=JetBrains+Mono:wght@500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f0f4f8;--surface:#fff;--surface-alt:#f8fafc;--text:#1a2332;--text-secondary:#5a6a7e;--text-muted:#94a3b8;--border:#e2e8f0;--blue-50:#eff6ff;--blue-100:#dbeafe;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--green-50:#f0fdf4;--green-100:#dcfce7;--green-500:#22c55e;--green-600:#16a34a;--green-700:#15803d;--orange-50:#fff7ed;--orange-100:#ffedd5;--orange-500:#f97316;--orange-600:#ea580c;--orange-700:#c2410c;--red-500:#ef4444;--red-100:#fee2e2;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 12px 32px #0000001f;--radius:14px;--radius-sm:10px}html{font-size:16px}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;min-height:100dvh;font-family:Noto Sans TC,-apple-system,sans-serif;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#3b82f60f 0%,#0000 70%);width:60vw;height:60vw;position:fixed;top:-30%;left:-10%}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#f973160d 0%,#0000 70%);width:50vw;height:50vw;position:fixed;bottom:-20%;right:-10%}.app{z-index:1;max-width:860px;margin:0 auto;padding:20px 16px 100px;position:relative}.header{text-align:center;padding:24px 0 20px}.header h1{letter-spacing:-.02em;color:var(--text);font-size:1.75rem;font-weight:900;line-height:1.2}.header h1 span{background:linear-gradient(135deg, var(--blue-600), var(--blue-500));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.header p{color:var(--text-muted);margin-top:4px;font-size:.9rem}.command-area{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);border:1.5px solid var(--border);margin-bottom:20px;padding:20px;transition:border-color .2s}.command-area:focus-within{border-color:var(--blue-500);box-shadow:var(--shadow-md), 0 0 0 3px #3b82f61a}.command-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;margin-bottom:10px;font-size:.8rem;font-weight:700;display:flex}.command-label:before{content:"";background:var(--blue-500);border-radius:50%;width:8px;height:8px;display:inline-block}.command-row{align-items:stretch;gap:10px;display:flex}.command-input{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);outline:none;flex:1;padding:14px 18px;font-family:Noto Sans TC,sans-serif;font-size:1.15rem;font-weight:500;transition:border-color .2s,background .2s}.command-input::placeholder{color:var(--text-muted);font-weight:400}.command-input:focus{border-color:var(--blue-500);background:var(--surface)}.btn-voice{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);width:56px;min-width:56px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative;overflow:hidden}.btn-voice:hover{border-color:var(--blue-500);color:var(--blue-600)}.btn-voice.recording{border-color:var(--red-500);background:var(--red-100);color:var(--red-500);animation:1.5s infinite pulse-ring}@keyframes pulse-ring{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 8px #ef444400}}.btn-voice svg{width:24px;height:24px}.command-hint{color:var(--text-muted);flex-wrap:wrap;gap:6px;margin-top:10px;font-size:.78rem;display:flex}.hint-tag{background:var(--surface-alt);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:20px;padding:3px 10px;transition:all .15s}.hint-tag:hover{background:var(--blue-50);border-color:var(--blue-500);color:var(--blue-600)}.preview-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);border:2px solid var(--blue-500);margin-bottom:20px;padding:20px;animation:.25s slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.preview-card.action-in{border-color:var(--green-500)}.preview-card.action-out{border-color:var(--orange-500)}.preview-header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.preview-badge{border-radius:20px;padding:4px 14px;font-size:.85rem;font-weight:700}.preview-badge.in{background:var(--green-100);color:var(--green-700)}.preview-badge.out{background:var(--orange-100);color:var(--orange-700)}.preview-title{color:var(--text-secondary);font-size:.85rem;font-weight:500}.preview-details{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px;display:grid}.preview-items{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.preview-item-row{background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.preview-item-name{color:var(--text);font-size:1.05rem;font-weight:700}.preview-item-qty{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:1.05rem;font-weight:700}.preview-meta{align-items:center;gap:8px;margin-bottom:10px;font-size:.9rem;display:flex}.preview-meta label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;min-width:42px;font-size:.72rem;font-weight:700}.preview-meta span{color:var(--text-secondary);font-weight:600}.preview-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:.72rem;font-weight:700;display:block}.preview-field .value{color:var(--text);font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:700}.preview-field .value.product-name{font-family:Noto Sans TC,sans-serif}.preview-field-wide{grid-column:1/-1}.preview-field .note-value{color:var(--text-secondary);font-size:.95rem;font-weight:500}.preview-actions{gap:10px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:12px 28px;font-family:Noto Sans TC,sans-serif;font-size:1rem;font-weight:700;transition:all .15s;display:flex}.btn-confirm{background:var(--blue-600);color:#fff;flex:1}.btn-confirm:hover{background:var(--blue-700);transform:translateY(-1px)}.btn-confirm.in{background:var(--green-600)}.btn-confirm.in:hover{background:var(--green-700)}.btn-confirm.out{background:var(--orange-600)}.btn-confirm.out:hover{background:var(--orange-700)}.btn-confirm:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-cancel{background:var(--surface-alt);color:var(--text-secondary);border:2px solid var(--border)}.btn-cancel:hover{background:var(--border)}.stats-bar{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;display:grid}.stat-card{background:var(--surface);border-radius:var(--radius-sm);text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:16px 14px}.stat-number{color:var(--text);font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:900;line-height:1.1}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:.7rem;font-weight:700}.stat-card.stat-in .stat-number{color:var(--green-600)}.stat-card.stat-out .stat-number{color:var(--orange-600)}.section-tabs{background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);gap:4px;margin-bottom:16px;padding:4px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:10px;font-family:Noto Sans TC,sans-serif;font-size:.9rem;font-weight:700;transition:all .15s}.tab-btn.active{background:var(--blue-600);color:#fff;box-shadow:var(--shadow-sm)}.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.inventory-card{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:18px;transition:all .2s;position:relative}.inventory-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.inventory-card .product-name{color:var(--text);margin-bottom:8px;padding-right:20px;font-size:1.05rem;font-weight:700}.inventory-card .stock-row{align-items:baseline;gap:4px;display:flex}.inventory-card .stock-num{color:var(--blue-600);font-family:JetBrains Mono,monospace;font-size:1.8rem;font-weight:900;line-height:1}.inventory-card .stock-unit{color:var(--text-muted);font-size:.85rem;font-weight:500}.inventory-card .stock-row.low .stock-num{color:var(--red-500)}.inventory-card .updated{color:var(--text-muted);margin-top:8px;font-size:.7rem}.empty-state{text-align:center;color:var(--text-muted);padding:48px 20px}.empty-state .empty-icon{opacity:.4;margin-bottom:8px;font-size:2.5rem}.empty-state p{font-size:.95rem}.records-list{flex-direction:column;gap:6px;display:flex}.record-item{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);border:1px solid var(--border);align-items:center;gap:14px;padding:14px 18px;transition:all .15s;display:flex}.record-item:hover{box-shadow:var(--shadow-md)}.record-badge{white-space:nowrap;text-align:center;border-radius:6px;min-width:48px;padding:3px 10px;font-size:.78rem;font-weight:700}.record-badge.in{background:var(--green-100);color:var(--green-700)}.record-badge.out{background:var(--orange-100);color:var(--orange-700)}.record-info{flex:1;min-width:0}.record-main{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.record-dest{color:var(--text-muted);margin-top:2px;font-size:.78rem}.record-note{color:var(--blue-600);margin-top:2px;font-size:.75rem;font-style:italic}.record-qty{white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700}.record-time{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;gap:8px;width:90%;max-width:480px;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);pointer-events:auto;cursor:pointer;padding:14px 20px;font-size:.9rem;font-weight:600;animation:.3s toastIn}.toast.success{background:var(--green-600);color:#fff}.toast.error{background:var(--red-500);color:#fff}.toast.warning{background:var(--orange-500);color:#fff}@keyframes toastIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin;display:inline-block}.spinner.dark{border-color:#3b82f626;border-top-color:var(--blue-600);width:14px;height:14px}.parsing-indicator{color:var(--blue-600);align-items:center;gap:8px;margin-top:10px;font-size:.82rem;font-weight:600;display:flex}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=600px){.app{padding:12px 10px 80px}.header h1{font-size:1.4rem}.stats-bar{grid-template-columns:repeat(2,1fr)}.stat-number{font-size:1.3rem}.command-input{padding:12px 14px;font-size:1rem}.inventory-grid{grid-template-columns:1fr 1fr;gap:8px}.inventory-card{padding:14px}.inventory-card .stock-num{font-size:1.4rem}.preview-details{grid-template-columns:1fr 1fr}.record-item{gap:10px;padding:12px 14px}}
