:root{--primary: #FF6B35;--primary-2: #FF8F5E;--primary-3: #FFA06B;--primary-light: #FFF3E8;--primary-dark: #E55A25;--success: #34C759;--danger: #FF3B30;--danger-light: #FFE5E5;--warning: #FF9500;--text: #1A1A1A;--text-2: #666;--text-3: #999;--bg-page: #F7F6F4;--bg-card: #FFFFFF;--bg-soft: #FBFAF9;--border: #ECEAE6;--border-strong: #E0DCD6;--track: #F1ECE8;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 2px 8px rgba(0, 0, 0, .04);--shadow-md: 0 2px 12px rgba(0, 0, 0, .06);--shadow-orange: 0 8px 32px rgba(255, 107, 53, .22);--shadow-focus: 0 0 0 3px rgba(255, 107, 53, .18);--fs-display: 22px;--fs-h1: 17px;--fs-body: 14px;--fs-meta: 12px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg-page);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page);padding:24px;font-family:var(--font)}.login-card{width:100%;max-width:380px;background:var(--bg-card);border-radius:var(--r-xl);box-shadow:var(--shadow-md);padding:40px 32px;text-align:center}.login-brand{font-size:var(--fs-display);font-weight:800;color:var(--primary);margin-bottom:4px}.login-subtitle{font-size:var(--fs-body);color:var(--text-3);margin-bottom:28px}.login-qr-wrap{width:220px;height:220px;margin:0 auto 24px;background:var(--bg-soft);border-radius:var(--r-lg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden}.login-qr-img{width:100%;height:100%;object-fit:contain}.login-qr-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-3);font-size:12px;padding:16px}.login-qr-mock{width:160px;height:160px;border-radius:var(--r-md);background:linear-gradient(45deg,var(--primary) 25%,transparent 25%) -8px 0,linear-gradient(-45deg,var(--primary) 25%,transparent 25%) -8px 0,linear-gradient(45deg,transparent 75%,var(--primary) 75%),linear-gradient(-45deg,transparent 75%,var(--primary) 75%);background-size:16px 16px;background-color:var(--primary-light);opacity:.4}.login-hint{font-size:13px;color:var(--text-2);margin-bottom:16px;line-height:1.5}.login-status{font-size:14px;color:var(--primary);font-weight:600}.login-error{font-size:13px;color:var(--danger);margin-top:12px;line-height:1.5}.login-retry{margin-top:20px;padding:10px 24px;border-radius:var(--r-full);background:var(--primary);color:#fff;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:opacity .2s}.login-retry:hover{opacity:.9}.login-loading-dot{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.manage{display:flex;min-height:100vh;background:var(--bg-page);font-family:var(--font)}.manage-sidebar{width:248px;flex-shrink:0;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px}.manage-brand{display:flex;align-items:center;gap:8px;padding:8px 12px 20px}.manage-brand-dot{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-3));box-shadow:var(--shadow-sm)}.manage-brand-text{font-size:16px;font-weight:800;color:var(--text)}.manage-list-label{font-size:var(--fs-meta);color:var(--text-3);padding:0 12px 8px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.manage-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.manage-list-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-body);color:var(--text-2);transition:background .12s}.manage-list-item:hover{background:var(--bg-page)}.manage-list-item--selected{background:var(--primary-light);color:var(--primary-dark);font-weight:600}.manage-list-item--selected .manage-list-dot{background:var(--primary)}.manage-list-dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong);flex-shrink:0}.manage-list-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-list-count{font-size:var(--fs-meta);color:var(--text-3);font-variant-numeric:tabular-nums}.manage-main{flex:1;min-width:0;display:flex;flex-direction:column}.manage-topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 32px 16px;gap:24px}.manage-topbar-left{min-width:0}.manage-title{font-size:var(--fs-display);font-weight:850;color:var(--text);line-height:1.2}.manage-meta{font-size:var(--fs-meta);color:var(--text-3);margin-top:4px;font-variant-numeric:tabular-nums}.manage-search{width:100%;max-width:360px;padding:8px 14px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-card);font-size:var(--fs-body);color:var(--text);outline:none;transition:border-color .12s,box-shadow .12s}.manage-search:focus{border-color:var(--primary);box-shadow:var(--shadow-focus)}.manage-quickadd{margin:0 32px 12px;padding:10px 14px;background:var(--bg-soft);border-radius:var(--r-md)}.manage-quickadd-input{width:100%;padding:8px 12px;border:1.5px dashed var(--border-strong);border-radius:var(--r-sm);background:transparent;font-size:var(--fs-body);color:var(--text);outline:none;transition:border-style .12s,border-color .12s,box-shadow .12s}.manage-quickadd-input:focus{border-style:solid;border-color:var(--primary);box-shadow:var(--shadow-focus)}.manage-items{flex:1;overflow-y:auto;padding:0 32px 32px}.manage-items-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;color:var(--text-3);text-align:center}.manage-items-state-icon{font-size:48px;line-height:1;margin-bottom:16px}.manage-items-state-title{font-size:var(--fs-h1);font-weight:600;color:var(--text-2);margin-bottom:6px}.manage-items-state-desc{font-size:var(--fs-body);color:var(--text-3)}.manage-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid transparent;transition:background .12s,border-color .12s,box-shadow .12s}.manage-item:hover{background:var(--bg-card);border-color:var(--border);box-shadow:var(--shadow-sm)}.manage-item--editing{background:var(--bg-card);border:1px solid var(--primary);box-shadow:var(--shadow-focus)}.manage-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-strong);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--bg-card);transition:border-color .12s,background .12s}.manage-check:hover{border-color:var(--primary)}.manage-check--done{background:var(--success);border-color:var(--success);color:#fff;font-size:12px}.manage-item-name{flex:1;min-width:0;font-size:var(--fs-body);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.manage-item--done .manage-item-name{color:var(--text-3);text-decoration:line-through}.manage-item-qty{font-size:var(--fs-meta);color:var(--text-3);background:var(--bg-soft);padding:2px 8px;border-radius:var(--r-full);font-variant-numeric:tabular-nums}.manage-item-edit-input{flex:1;min-width:0;padding:4px 8px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:var(--fs-body);color:var(--text);outline:none}.manage-item-edit-input:focus{border-color:var(--primary)}.manage-divider{display:flex;align-items:center;gap:12px;margin:24px 12px 8px;font-size:var(--fs-meta);color:var(--text-3);font-weight:600}.manage-error{margin:0 32px 12px;padding:10px 14px;background:var(--danger-light);border-radius:var(--r-md);color:var(--danger);font-size:var(--fs-body);display:flex;align-items:center;justify-content:space-between}.manage-retry-btn{padding:4px 14px;border-radius:var(--r-full);background:var(--primary);color:#fff;border:none;font-size:var(--fs-meta);font-weight:600;cursor:pointer}.manage-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:manage-spin .8s linear infinite;margin-bottom:12px}@keyframes manage-spin{to{transform:rotate(360deg)}}
