*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;
background:#f4f5f7;color:#222;font-size:14px;height:100vh;height:100dvh;
display:flex;flex-direction:column;overflow:hidden}

/* ===== 登录 ===== */
.loginwrap{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;
background:linear-gradient(160deg,#c0392b,#7b241c)}
.loginbox{background:#fff;border-radius:16px;padding:30px 24px;width:100%;max-width:330px;
text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.2)}
.lg-icon{font-size:46px;line-height:1}
.lg-name{font-size:18px;font-weight:700;margin-top:8px}
.lg-sub{font-size:12px;color:#999;margin:4px 0 20px}
.loginbox input{width:100%;border:1px solid #e0e0e0;border-radius:9px;padding:12px;
font-size:16px;outline:none;text-align:center}
.loginbox input:focus{border-color:#c0392b}
.loginbox button{width:100%;margin-top:12px;padding:12px;background:#c0392b;color:#fff;
border:none;border-radius:9px;font-size:16px;font-weight:600;cursor:pointer;letter-spacing:2px}
.lg-err{font-size:12.5px;color:#e74c3c;margin-top:10px;min-height:17px}

/* ===== 顶栏 ===== */
.bhd{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:11px 14px;
background:linear-gradient(135deg,#c0392b,#8e2b20);color:#fff}
.bh-main{flex:1;min-width:0}
.bh-name{font-size:15.5px;font-weight:700;line-height:1.25}
.bh-sub{font-size:11px;opacity:.82;margin-top:2px}
.bh-out{background:rgba(255,255,255,.18);color:#fff;border:none;border-radius:14px;
padding:5px 13px;font-size:12px;cursor:pointer}

/* ===== 标签栏 ===== */
.btabs{flex:0 0 auto;display:flex;background:#fff;border-bottom:1px solid #eee}
.btabs button{flex:1;border:none;background:transparent;padding:11px 2px;font-size:12.5px;
color:#888;cursor:pointer;position:relative;line-height:1.3}
.btabs button.on{color:#c0392b;font-weight:700}
.btabs button.on::after{content:"";position:absolute;bottom:0;left:22%;right:22%;
height:2.5px;background:#c0392b;border-radius:2px}

.bbody{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:11px}
.bbody::-webkit-scrollbar{display:none}

/* ===== 通用卡片 ===== */
.card{background:#fff;border-radius:11px;padding:13px;margin-bottom:10px;
box-shadow:0 1px 3px rgba(0,0,0,.05)}
.card h3{font-size:14px;color:#333;margin-bottom:10px;display:flex;
justify-content:space-between;align-items:center}
.card h3 .sub{font-size:11px;color:#aaa;font-weight:400}

/* ===== KPI ===== */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}
.kpi{background:#fff;border-radius:11px;padding:14px 11px;text-align:center;
box-shadow:0 1px 3px rgba(0,0,0,.05)}
.kpi .n{font-size:25px;font-weight:800;color:#c0392b;line-height:1.1}
.kpi .n.g{color:#1e8449}
.kpi .l{font-size:11.5px;color:#999;margin-top:3px}

/* ===== 实时订单 ===== */
.lord{background:#fff;border-radius:11px;padding:12px;margin-bottom:9px;
border-left:4px solid #ddd;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.lord.chk{border-left-color:#f39c12;background:#fffdf4}
.lord.new{border-left-color:#e74c3c;background:#fffaf9}
.lord.cook{border-left-color:#27ae60}
.lord.srv{border-left-color:#3498db}
.lord.pay{opacity:.55}
.lord .lh{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.lord .ltbl{font-size:17px;font-weight:800;color:#c0392b}
.lord .lno{font-size:11.5px;color:#999;flex:1}
.lord .ltm{font-size:11px;color:#bbb}
.lord .lmeta{font-size:11.5px;color:#888;margin-bottom:5px}
.lord .lmeta .pd{color:#1e8449;font-weight:600}
.lord .lmeta i{color:#e67e22;font-style:normal}
.lord .lits{font-size:13px;color:#444;line-height:1.75;margin-bottom:6px}
.lord .lits span{display:inline-block;margin-right:9px}
.lord .lits b{color:#c0392b}
.lord .lnote{font-size:11.5px;color:#b9770e;background:#fdf3e0;padding:5px 7px;
border-radius:5px;margin-bottom:6px}
.lord .lf{display:flex;justify-content:space-between;align-items:center;
border-top:1px dashed #eee;padding-top:7px;font-size:11.5px;color:#999}
.lord .lf b{font-size:16px;color:#c0392b}
.lord .lact{display:flex;gap:6px;margin-top:8px}
.lord .lact button{flex:1;padding:8px 4px;border:none;border-radius:7px;font-size:12.5px;
font-weight:600;cursor:pointer}
.lact .go,.lact .pay2{background:#c0392b;color:#fff}
.lact .ok{background:#27ae60;color:#fff}
.lact .fin{background:#2980b9;color:#fff}
.lact .bk,.lact .cxl{background:#f0f0f0;color:#888;flex:0 0 58px}
.empty{text-align:center;color:#bbb;padding:42px 0;font-size:13.5px;line-height:1.8}

/* ===== 菜单管理 ===== */
.mcat{background:#fff;border-radius:11px;margin-bottom:10px;overflow:hidden;
box-shadow:0 1px 3px rgba(0,0,0,.05)}
.mcat .ch{display:flex;align-items:center;gap:8px;padding:11px 13px;background:#fafafa;
border-bottom:1px solid #f0f0f0;cursor:pointer}
.mcat .ch .cn{flex:1;font-size:13.5px;font-weight:600}
.mcat .ch .cc{font-size:11px;color:#aaa}
.mcat .ch .arrow{font-size:11px;color:#bbb;transition:transform .2s}
.mcat.open .ch .arrow{transform:rotate(90deg)}
.mcat .cb{display:none}
.mcat.open .cb{display:block}
.mrow{display:flex;align-items:center;gap:9px;padding:9px 13px;border-bottom:1px solid #f7f7f7}
.mrow:last-child{border:none}
.mrow .me{font-size:20px;flex:0 0 24px;text-align:center}
.mrow .mn{flex:1;min-width:0;font-size:13.5px;line-height:1.35}
.mrow .mn small{display:block;font-size:10.5px;color:#bbb;margin-top:1px}
.mrow.soldout .mn{color:#bbb;text-decoration:line-through}
.mrow .mp{flex:0 0 62px}
.mrow .mp input{width:100%;border:1px solid #e5e5e5;border-radius:6px;padding:5px 4px;
font-size:14px;text-align:center;outline:none;font-weight:600;color:#c0392b}
.mrow .mp input:focus{border-color:#c0392b;background:#fffafa}
.mrow .mt{flex:0 0 52px}
.mrow .mt button{width:100%;border:none;border-radius:6px;padding:6px 2px;font-size:11.5px;
font-weight:600;cursor:pointer}
.mrow .mt .off{background:#fdeceb;color:#c0392b}
.mrow .mt .on{background:#eafaf1;color:#1e8449}
.mhint{font-size:11.5px;color:#aaa;text-align:center;padding:6px 0 12px;line-height:1.7}

/* ===== 营业统计 ===== */
.trow{display:flex;justify-content:space-between;padding:8px 0;
border-bottom:1px solid #f7f7f7;font-size:13.5px}
.trow:last-child{border:none}
.trow .tl{color:#666}
.trow .tr{font-weight:600}
.daypick{display:flex;gap:7px;margin-bottom:10px}
.daypick input{flex:1;border:1px solid #e0e0e0;border-radius:8px;padding:8px;
font-size:14px;outline:none}
.daypick button{flex:0 0 62px;background:#c0392b;color:#fff;border:none;border-radius:8px;
font-size:13px;cursor:pointer}

/* ===== 设置 ===== */
.frow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f7f7f7}
.frow:last-of-type{border:none}
.frow label{flex:0 0 74px;font-size:13px;color:#666}
.frow input,.frow select{flex:1;min-width:0;border:1px solid #e0e0e0;border-radius:8px;
padding:8px 10px;font-size:14px;outline:none;background:#fff}
.frow input:focus{border-color:#c0392b}
.frow .ro{flex:1;font-size:13.5px;color:#333;font-weight:600}
.savebtn{width:100%;margin-top:12px;padding:11px;background:#c0392b;color:#fff;border:none;
border-radius:9px;font-size:15px;font-weight:600;cursor:pointer}
.warnbox{background:#fff8e6;border-left:3px solid #e6a817;border-radius:7px;
padding:10px 11px;font-size:12px;color:#8a6516;line-height:1.65;margin-top:10px}
.linkrow{display:block;background:#f7f8fa;border-radius:8px;padding:10px 11px;
margin-bottom:7px;font-size:12.5px;color:#2980b9;text-decoration:none;
word-break:break-all;line-height:1.5}
.linkrow b{display:block;color:#333;font-size:13px;margin-bottom:2px}

/* ===== 弹窗 / toast ===== */
.mask{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:60;
align-items:center;justify-content:center;padding:24px}
.mask.on{display:flex}
.dlg{background:#fff;border-radius:13px;padding:19px;width:100%;max-width:330px}
.dlg h4{font-size:15.5px;margin-bottom:11px}
.dlg p{font-size:13px;color:#666;line-height:1.7;margin-bottom:13px}
.dlg .dbtns{display:flex;gap:8px}
.dlg .dbtns button{flex:1;padding:10px;border:none;border-radius:8px;font-size:14px;
font-weight:600;cursor:pointer}
.dlg .dc{background:#f0f0f0;color:#555}
.dlg .dy{background:#c0392b;color:#fff}
.toast{position:fixed;left:50%;top:44%;transform:translate(-50%,-50%);
background:rgba(0,0,0,.84);color:#fff;padding:11px 19px;border-radius:9px;font-size:14px;
z-index:99;display:none;max-width:78%;text-align:center;line-height:1.5}

/* ===== 加菜/加分类 按钮 ===== */
.mbtns{display:flex;gap:8px}
.mbtns button{flex:1;padding:10px 4px;border:none;border-radius:8px;font-size:13.5px;
font-weight:600;cursor:pointer}
.mbtns .mb-add{background:#c0392b;color:#fff}
.mbtns .mb-cat{background:#f2f2f2;color:#555}

/* 菜单行：菜名可点、行尾删除 */
.mrow .mn[data-edit]{cursor:pointer}
.mrow .mn[data-edit]:active{color:#c0392b}
.mrow .mx{flex:0 0 26px}
.mrow .mx button{width:26px;height:26px;border:none;border-radius:50%;background:#f7f7f7;
color:#bbb;font-size:13px;cursor:pointer;padding:0}
.mrow .mx button:active{background:#fdeceb;color:#c0392b}

/* ===== 弹窗表单 ===== */
.dlg{max-height:86vh;overflow-y:auto}
.dfld{margin-bottom:11px}
.dfld label{display:block;font-size:12px;color:#888;margin-bottom:4px}
.dfld input,.dfld select{width:100%;border:1px solid #e0e0e0;border-radius:8px;
padding:9px 10px;font-size:15px;outline:none;background:#fff}
.dfld input:focus{border-color:#c0392b}
.dfld select:disabled{background:#f7f7f7;color:#999}
.dfld2{display:flex;gap:8px;margin-bottom:11px}
.dfld2>div{flex:1;min-width:0}
.dfld2 label{display:block;font-size:12px;color:#888;margin-bottom:4px}
.dfld2 input{width:100%;border:1px solid #e0e0e0;border-radius:8px;padding:9px 10px;
font-size:15px;outline:none}
.dfld2 input:focus{border-color:#c0392b}
.dnote{font-size:11.5px;color:#aaa;line-height:1.6;margin:-4px 0 11px}

/* 标签选择 */
.tgpick{display:flex;gap:5px;flex-wrap:wrap}
.tgpick .tbtn{border:1px solid #e5e5e5;background:#fff;border-radius:14px;
padding:5px 11px;font-size:12px;color:#777;cursor:pointer}
.tgpick .tbtn.on{border-color:#c0392b;background:#fdeceb;color:#c0392b;font-weight:600}

/* 图标选择 */
.epick{display:grid;grid-template-columns:repeat(9,1fr);gap:4px;max-height:118px;
overflow-y:auto;padding:5px;background:#fafafa;border-radius:8px}
.epick::-webkit-scrollbar{display:none}
.epick .ebtn{border:1.5px solid transparent;background:#fff;border-radius:6px;
padding:4px 0;font-size:18px;cursor:pointer;line-height:1.2}
.epick .ebtn.on{border-color:#c0392b;background:#fdeceb}

/* 分类列表 */
.clist{max-height:190px;overflow-y:auto;margin-bottom:12px;border:1px solid #f0f0f0;
border-radius:8px}
.clist::-webkit-scrollbar{display:none}
.crow{display:flex;align-items:center;gap:7px;padding:9px 11px;
border-bottom:1px solid #f7f7f7;font-size:13.5px}
.crow:last-child{border:none}
.crow span{flex:1;min-width:0}
.crow em{font-style:normal;font-size:10.5px;color:#e67e22;background:#fdf3e0;
padding:1px 6px;border-radius:8px}
.crow button{width:24px;height:24px;border:none;border-radius:50%;background:#f7f7f7;
color:#bbb;font-size:12px;cursor:pointer;padding:0}
.crow button:active{background:#fdeceb;color:#c0392b}

/* ===== 销量排行 ===== */
.toprow{display:flex;align-items:center;gap:7px;padding:6px 0;font-size:12.5px}
.toprow .tk{flex:0 0 17px;height:17px;border-radius:4px;background:#f0f0f0;color:#999;
font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.toprow:nth-child(2) .tk{background:#c0392b;color:#fff}
.toprow:nth-child(3) .tk{background:#e67e22;color:#fff}
.toprow:nth-child(4) .tk{background:#f0b27a;color:#fff}
.toprow .tn{flex:0 0 92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}
.toprow .tbar{flex:1;min-width:22px;height:6px;background:#f2f2f2;border-radius:3px;overflow:hidden}
.toprow .tbar i{display:block;height:100%;background:linear-gradient(90deg,#e74c3c,#c0392b);
border-radius:3px}
.toprow .tq{flex:0 0 42px;text-align:right;color:#666;font-weight:600}
.toprow .ta{flex:0 0 50px;text-align:right;color:#c0392b;font-weight:700}

/* ===== 改价待保存提示条 ===== */
.savebar{display:none;flex:0 0 auto;align-items:center;gap:8px;padding:9px 12px;
background:#fff8e6;border-bottom:1px solid #f0e2bb}
.savebar.on{display:flex}
.savebar .sb-txt{flex:1;font-size:12.5px;color:#8a6516;line-height:1.4}
.savebar .sb-txt b{font-size:15px;color:#c0392b}
.savebar button{flex:0 0 auto;border:none;border-radius:15px;padding:7px 15px;
font-size:13px;font-weight:600;cursor:pointer}
.savebar .sb-x{background:#f0e6cc;color:#8a6516}
.savebar .sb-ok{background:#c0392b;color:#fff}
.savebar .sb-ok:disabled{opacity:.6}

/* 改动过、待保存的行 */
.mrow.dirty{background:#fffdf3}
.mrow.dirty .mp input{border-color:#e6a817;background:#fffbee;
box-shadow:0 0 0 2px rgba(230,168,23,.13)}
.mrow.bad .mp input{border-color:#e74c3c;background:#fdf2f1;
box-shadow:0 0 0 2px rgba(231,76,60,.13)}
