:root{--ms-bg: #ffffff;--ms-bg-soft: #f7f7f7;--ms-text: #2f2f2f;--ms-text-muted: #666666;--ms-primary: #4d4d4d;--ms-primary-text: #ffffff;--ms-line: #eeeeee;--ms-input-line: #dedede;--ms-burgundy: #7f0d0e;--ms-brand: #5e4537;--ms-gold: #e2be8e;--ms-success: #3a8735}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ms-bg);color:var(--ms-text);font-family:Jost,Futura,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.wordmark{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--ms-brand);font-weight:600;text-align:center}.brand-logo{display:block;margin:0 auto}.app-header{display:flex;align-items:center;gap:10px;padding:4px 0 12px;border-bottom:1px solid var(--ms-line);margin-bottom:4px}.app-header img{display:block}.app-header .wordmark{text-align:left}.app{max-width:680px;margin:0 auto;padding:16px 16px 104px}.card{background:var(--ms-bg);border-bottom:1px solid var(--ms-line);padding:16px 0;margin-bottom:12px}.title{font-size:19px;font-weight:600;line-height:1.35}.section-title{font-size:16px;font-weight:600;color:var(--ms-brand);margin-bottom:6px}.subtitle{color:var(--ms-text-muted);font-size:13px;line-height:1.55}.small{font-size:12px}.empty{text-align:center;color:var(--ms-text-muted);padding:32px 12px}.center-screen{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;max-width:480px;margin:0 auto;padding:24px 20px 48px}.btn-primary,.btn-secondary,.btn-danger{display:block;width:100%;border-radius:5px;font-size:16px;font-weight:500;min-height:48px;padding:10px 16px;cursor:pointer;text-align:center}.btn-primary{background:var(--ms-primary);color:var(--ms-primary-text);border:1px solid var(--ms-primary)}.btn-secondary{background:transparent;border:1px solid var(--ms-primary);color:var(--ms-text)}.btn-danger{background:transparent;border:1px solid var(--ms-burgundy);color:var(--ms-burgundy)}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.55;cursor:default}.link-btn{background:none;border:none;color:var(--ms-brand);font-size:14px;padding:8px 4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.label{display:block;font-weight:500;margin:18px 0 8px}.label:first-child{margin-top:0}.input,.select,.textarea{width:100%;background:var(--ms-bg);border:1px solid var(--ms-input-line);border-radius:5px;padding:12px;min-height:48px;font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.textarea{min-height:72px;resize:vertical}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:11px 16px;min-height:44px;border-radius:5px;background:var(--ms-bg);border:1px solid var(--ms-input-line);color:var(--ms-text-muted);font-size:14px;cursor:pointer}.chip.active{background:var(--ms-primary);border-color:var(--ms-primary);color:var(--ms-primary-text);font-weight:500}.mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.mode-btn{min-height:48px;border-radius:5px;background:var(--ms-bg);border:1px solid var(--ms-input-line);color:var(--ms-text-muted);font-size:16px;cursor:pointer}.mode-btn.active{background:var(--ms-primary);border-color:var(--ms-primary);color:var(--ms-primary-text);font-weight:500}.dest-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.dest-btn{min-height:58px;padding:10px 6px;border-radius:5px;background:var(--ms-bg);border:1px solid var(--ms-input-line);color:var(--ms-text-muted);font-size:16px;font-weight:500;cursor:pointer}.dest-btn.active{background:var(--ms-primary);border-color:var(--ms-primary);color:var(--ms-primary-text)}.warning-box{background:var(--ms-bg-soft);border:1px solid var(--ms-line);border-left:3px solid var(--ms-burgundy);color:var(--ms-burgundy);padding:12px 14px;line-height:1.6;margin-bottom:12px;white-space:pre-line}.notice-box{background:var(--ms-bg-soft);border:1px solid var(--ms-line);border-left:3px solid var(--ms-gold);color:var(--ms-text);padding:12px 14px;line-height:1.6;margin-bottom:12px;white-space:pre-line}.success-box{background:var(--ms-bg-soft);border:1px solid var(--ms-line);border-left:3px solid var(--ms-success);color:var(--ms-success);padding:12px 14px;line-height:1.6;margin-bottom:12px;white-space:pre-line}.product-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}.product-icon svg{display:block}.product-photo{display:block;aspect-ratio:1 / 1;object-fit:cover;border:1px solid var(--ms-line);border-radius:2px;background:var(--ms-bg-soft)}.group-title{font-size:14px;font-weight:600;color:var(--ms-brand);letter-spacing:.06em;margin-bottom:4px}.product-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--ms-line)}.product-row:last-child{border-bottom:none}.product-main{flex:1 1 auto;min-width:0}.product-name{font-size:16px;font-weight:500;line-height:1.4}.low-text{color:var(--ms-burgundy);font-size:12px;margin-top:2px}.success-text{color:#3a8735;font-size:12px;margin-top:2px}.oil-sealed{font-size:13px;margin-top:2px}.oil-sub{color:var(--ms-text-muted);font-size:12px;margin-top:2px}.open-panel{margin-top:8px}.qty-box{text-align:right;flex:0 0 auto}.qty{font-size:20px;font-weight:600;line-height:1.2}.qty.low{color:var(--ms-burgundy)}.qty-unit{color:var(--ms-text-muted);font-size:12px}.pick-group{margin-bottom:8px}.pick-row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 10px;background:var(--ms-bg);border:none;border-bottom:1px solid var(--ms-line);cursor:pointer;text-align:left}.pick-row.active{background:var(--ms-bg-soft);box-shadow:inset 3px 0 0 var(--ms-primary)}.pick-main{flex:1 1 auto;min-width:0}.pick-name{font-size:16px;font-weight:500;line-height:1.35}.pick-sub{color:var(--ms-text-muted);font-size:12px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick-stock{flex:0 0 auto;color:var(--ms-text-muted);font-size:13px;text-align:right}.pick-added{display:block;color:var(--ms-success);font-size:12px;font-weight:600;margin-top:2px}.cart-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--ms-line)}.cart-main{flex:1 1 auto;min-width:0}.cart-invalid{color:var(--ms-burgundy);font-weight:600;margin-left:6px}.stepper{flex:0 0 auto;display:inline-flex;align-items:stretch;gap:6px}.step-btn{width:40px;min-height:44px;border-radius:5px;background:var(--ms-bg);border:1px solid var(--ms-input-line);color:var(--ms-text);font-size:19px;line-height:1;cursor:pointer}.step-input{width:62px;min-height:44px;border:1px solid var(--ms-input-line);border-radius:5px;padding:6px 4px;font-size:16px;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.cart-unit{flex:0 0 auto;color:var(--ms-text-muted);font-size:13px}.cart-remove{flex:0 0 auto;min-height:44px;padding:6px 10px;background:none;border:1px solid var(--ms-burgundy);border-radius:5px;color:var(--ms-burgundy);font-size:14px;cursor:pointer}.cart-summary{margin-top:10px;font-size:14px;font-weight:600;color:var(--ms-brand);text-align:right}.preview{background:var(--ms-bg-soft);padding:12px 14px;margin-top:16px}.preview-title{font-weight:600;margin-bottom:6px}.preview-row{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:14px}.preview-qty{font-weight:500;white-space:nowrap}.filter-label{font-size:13px;color:var(--ms-text-muted);margin:12px 0 6px}.movement-card.has-warning{border-left:3px solid var(--ms-burgundy);padding-left:12px}.movement-head{display:flex;align-items:center;gap:10px}.type-badge{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--ms-brand);border:1px solid var(--ms-input-line);padding:3px 8px;border-radius:4px}.movement-name{flex:1 1 auto;font-weight:500;font-size:15px;min-width:0}.delta{flex:0 0 auto;font-size:17px;font-weight:600}.detail{font-size:13px;color:var(--ms-text);margin-top:3px;padding-left:42px}.movement-card .subtitle,.movement-foot{padding-left:42px}.warning-text{color:var(--ms-burgundy);font-size:13px;margin-top:4px;padding-left:42px;line-height:1.55}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-name{font-size:18px;font-weight:600}.role-badge{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--ms-brand);border:1px solid var(--ms-input-line);padding:4px 10px;border-radius:4px}.member-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--ms-line)}.member-row:last-child{border-bottom:none}.member-main{flex:1 1 auto;min-width:0}.member-role-select{flex:0 0 auto;width:auto;min-height:44px;padding:8px 10px;border:1px solid var(--ms-input-line);border-radius:5px;background:var(--ms-bg);font-size:14px}.member-row{flex-wrap:wrap}.member-controls{display:flex;flex:0 0 auto;gap:6px;align-items:center;flex-wrap:wrap}.member-reset-btn{min-height:44px;padding:8px 12px;border:1px solid var(--ms-input-line);border-radius:5px;background:var(--ms-bg);color:var(--ms-text);font-size:14px;cursor:pointer}.member-full-select{width:100%}.info-line{padding:5px 0;line-height:1.6}.action-btn{margin-top:14px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:var(--ms-bg);border-top:1px solid var(--ms-line);padding-bottom:env(safe-area-inset-bottom)}.tabbar-btn{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:6px 0 8px;background:none;border:none;color:var(--ms-text-muted);font-size:12px;cursor:pointer}.tabbar-btn.active{color:var(--ms-brand);font-weight:600}.tabbar-btn svg{display:block}.nav-brand{display:none}@media (min-width: 860px){.app{margin-left:max(220px,calc((100vw - 680px)/2));margin-right:auto;padding-bottom:40px}.app-header{display:none}.tabbar{top:0;right:auto;bottom:0;width:220px;flex-direction:column;justify-content:flex-start;align-items:stretch;border-top:none;border-right:1px solid var(--ms-line);padding:calc(20px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom))}.nav-brand{display:flex;flex-direction:column;align-items:center;gap:10px;padding:4px 0 18px;margin-bottom:14px;border-bottom:1px solid var(--ms-line)}.nav-brand img{display:block}.nav-brand .wordmark{font-size:12px;letter-spacing:.3em}.tabbar-btn{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;min-height:48px;padding:10px 14px;font-size:15px;border-radius:5px}.tabbar-btn.active{background:var(--ms-primary);color:var(--ms-primary-text);font-weight:600}}.auth-brand{text-align:center;margin-bottom:28px}.auth-title{font-size:22px;font-weight:600;text-align:center;margin-top:10px}.auth-sub{text-align:center;color:var(--ms-text-muted);font-size:13px;margin-top:6px}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.quick-action-btn{min-height:58px;border:none;border-radius:5px;background:var(--ms-primary);color:#fff;font-family:inherit;font-size:17px;font-weight:600;letter-spacing:.14em;cursor:pointer}.quick-action-btn:active{opacity:.85}.quick-action-cell{display:flex;flex-direction:column;gap:6px}.quick-action-cell .quick-action-btn{width:100%}.func-desc{font-size:12.5px;color:var(--ms-text-muted);line-height:1.55}.quick-action-cell .func-desc{text-align:center;padding:0 2px}.mode-desc{margin:0 2px 10px}.order-group-title{font-size:14px;font-weight:600;color:var(--ms-brand);margin:18px 0 8px}.order-card.order-cancelled{opacity:.72}.order-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.status-chip{flex:0 0 auto;font-size:12px;font-weight:500;color:var(--ms-text-muted);border:1px solid var(--ms-input-line);padding:3px 8px;border-radius:4px}.status-chip.status-pending{border-color:var(--ms-primary);color:var(--ms-primary);font-weight:600}.status-chip.status-completed,.status-chip.status-cancelled{color:var(--ms-text-muted)}.order-date{font-size:13px;color:var(--ms-text-muted)}.order-line{display:flex;align-items:center;gap:10px;padding:5px 0}.order-line-name{flex:1 1 auto;font-weight:500;font-size:15px;min-width:0}.order-line-qty{flex:0 0 auto;font-weight:600;white-space:nowrap}.order-meta{font-size:13px;color:var(--ms-text-muted);margin-top:6px;line-height:1.6}.order-note{font-size:13px;margin-top:4px}.order-actions{display:flex;gap:8px;margin-top:12px}.order-actions .btn-primary,.order-actions .btn-secondary,.order-actions .btn-danger{flex:1 1 0;width:auto}
