:root{
  --bg:#f6f6f4; --card:#fff; --ink:#1b1b19; --ink-2:#55554f; --muted:#9c9c94;
  --line:#ebebe7; --line-2:#e2e2dd;
  --brand:#2d6a4f; --brand-d:#245a42; --brand-soft:#e9f1ec;
  --ok:#2d6a4f; --ok-bg:#e9f1ec;
  --warn:#b1442e; --warn-bg:#f6e8e4;
  --todo:#94701d; --todo-bg:#f2ecdb;
  --pick:#566b60; --pick-bg:#eef1ef;
  --gray:#8d8d87; --gray-bg:#efefeb;
  --r:12px; --r-sm:9px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Segoe UI,sans-serif;
  background:var(--bg);color:var(--ink);font-size:15px;line-height:1.55;-webkit-tap-highlight-color:transparent;
  -webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--ink)}

/* ---------- 工作台骨架 ---------- */
#shell{display:flex;min-height:100vh}
.sidebar{width:212px;flex-shrink:0;border-right:1px solid var(--line);padding:18px 14px;
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;background:var(--card)}
.brand{font-weight:600;font-size:18px;letter-spacing:3px;padding:6px 8px 16px;display:flex;flex-direction:column}
.brand span{font-size:11px;color:var(--muted);letter-spacing:1px;font-weight:400;margin-top:4px}
.add-btn{background:var(--brand);color:#fff;border-radius:9px;padding:11px;font-weight:600;font-size:14px;margin-bottom:10px;transition:.12s;white-space:nowrap}
.add-btn:hover{background:var(--brand-d)}
.navlist{display:flex;flex-direction:column;gap:2px}
.navitem{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:8px;color:var(--ink-2);font-size:14.5px;font-weight:500;text-align:left;transition:.12s}
.navitem .ic{font-size:17px;opacity:.65;filter:grayscale(.4)}
.navitem:hover{background:var(--bg)}
.navitem.active{background:var(--brand-soft);color:var(--brand);font-weight:600}
.navitem.active .ic{opacity:1;filter:none}
.side-foot{margin-top:auto;font-size:12px;color:var(--muted);padding:10px 8px 4px;border-top:1px solid var(--line)}
.main{flex:1;min-width:0;display:flex;justify-content:center}
#view{width:100%;max-width:820px;padding:4px 26px 70px}
.fab{display:none}

/* 页面头 */
.phead{display:flex;align-items:center;gap:12px;padding:20px 2px 14px;position:sticky;top:0;background:var(--bg);z-index:4;flex-wrap:wrap}
.phead h2{margin:0;font-size:20px;font-weight:600;letter-spacing:.5px}
.phsub{font-size:12px;color:var(--muted);margin-top:3px}
.only-mobile{display:none}
@media(max-width:767px){.only-mobile{display:block}}
.phead-r{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}
.search{flex:0 1 230px;min-width:0;padding:8px 12px;border:1px solid var(--line-2);border-radius:8px;font-size:14px;background:#fff}
.search-wide{width:100%;margin-bottom:6px}
.phead-r .btn{flex:0 0 auto}

/* 二级分区菜单 */
.subnav{display:flex;gap:4px;overflow-x:auto;padding:2px 0 0;margin-bottom:6px;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch}
.subnav button{padding:8px 14px;border-radius:7px 7px 0 0;font-size:13.5px;color:var(--ink-2);white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
.subnav button:hover{color:var(--ink)}
.subnav button.on{color:var(--brand);font-weight:600;border-bottom-color:var(--brand)}

/* 今日概览 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:2px 0 6px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;cursor:pointer;transition:.12s;-webkit-user-select:none;user-select:none}
.stat:hover{border-color:var(--line-2);background:#fcfcfb}
.stat.sel{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.stat .sv{font-size:25px;font-weight:700;line-height:1.05}
.stat .sl{font-size:12px;color:var(--muted);margin-top:4px}
.stat.todo .sv{color:var(--todo)}
.stat.done .sv{color:var(--brand)}
.stat.warn .sv{color:var(--warn)}
.subbar{display:flex;align-items:center;gap:10px;padding:8px 2px 2px}

@media(max-width:767px){
  #shell{display:block}
  .sidebar{position:fixed;bottom:0;left:0;right:0;top:auto;width:auto;height:auto;flex-direction:row;
    justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-right:0;
    border-top:1px solid var(--line);z-index:10;gap:0;background:rgba(255,255,255,.95);backdrop-filter:blur(10px)}
  .brand,.add-btn,.side-foot{display:none}
  .navlist{flex-direction:row;justify-content:space-around;width:100%;gap:0}
  .navitem{flex-direction:column;gap:3px;font-size:11px;padding:5px 8px;min-width:46px;align-items:center}
  .navitem .ic{font-size:18px}
  .navitem.active{background:none}
  .main{display:block}
  #view{padding:0 16px 92px;max-width:none}
  .fab{display:flex;position:fixed;right:18px;bottom:calc(66px + env(safe-area-inset-bottom));width:52px;height:52px;
    border-radius:50%;background:var(--brand);color:#fff;font-size:26px;align-items:center;justify-content:center;
    box-shadow:0 4px 14px rgba(45,106,79,.38);z-index:11}
  .phead{padding:16px 2px 12px}
  .phead h2{font-size:18px}
  .search{width:140px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat .sv{font-size:22px}
}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:12px 0}
.card h3{margin:0 0 12px;font-size:15px;font-weight:600;letter-spacing:.2px}
.row{display:flex;gap:10px;align-items:center}
.row.wrap{flex-wrap:wrap}
.sp{flex:1}
.muted{color:var(--muted)}
.small{font-size:13px}
.tiny{font-size:12px}
.section-title{font-size:12.5px;font-weight:600;color:var(--ink-2);letter-spacing:.3px;margin:20px 2px 8px}

/* pills */
.pill{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px;background:var(--gray-bg);color:var(--ink-2)}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.gray{background:var(--gray-bg);color:var(--gray)}

/* forms */
label.fld{display:block;margin:13px 0 5px;font-size:12.5px;color:var(--ink-2);font-weight:600}
input[type=text],input[type=tel],input[type=number],input[type=date],input[type=password],select,textarea{
  width:100%;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;outline:none;transition:.12s}
input::placeholder,textarea::placeholder{color:#bdbdb6}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(45,106,79,.12)}
textarea{min-height:60px;resize:vertical}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:480px){.grid2{grid-template-columns:1fr}}

/* buttons */
.btn{border-radius:var(--r-sm);padding:10px 17px;font-weight:600;font-size:14px;background:var(--brand);color:#fff;transition:.12s;white-space:nowrap}
.btn:hover{background:var(--brand-d)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:#fff;border:1px solid var(--line-2);color:var(--ink)}
.btn.ghost:hover{background:#fafafa;border-color:#d4d4ce}
.btn.sm{padding:6px 12px;font-size:13px;border-radius:8px}
.btn.ok{background:var(--brand)}
.btn.danger{background:#fff;border:1px solid var(--warn-bg);color:var(--warn)}
.btn.danger:hover{background:var(--warn-bg)}
.btn.block{width:100%}
.btn:disabled{opacity:.45}

/* chips */
.chiprow{display:flex;gap:7px;flex-wrap:wrap}
.chip{padding:7px 13px;border:1px solid var(--line-2);border-radius:7px;font-size:13.5px;background:#fff;transition:.12s;color:var(--ink-2)}
.chip:hover{border-color:#d4d4ce}
.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:var(--ink-2);font-size:14px}
.switch input{accent-color:var(--brand)}

/* status select */
.stsel{width:auto;flex:0 0 auto;font-size:12.5px;font-weight:600;border-radius:7px;padding:5px 9px;
  border:1px solid var(--line-2);background:#fff;-webkit-appearance:none;appearance:none;cursor:pointer;outline:none}
.stsel:focus{box-shadow:0 0 0 3px rgba(45,106,79,.12)}
.stsel.st-todo{background:var(--todo-bg);color:var(--todo);border-color:#e6dcc0}
.stsel.st-done{background:var(--ok-bg);color:var(--ok);border-color:#cfe2d6}
.stsel.st-pickup{background:var(--pick-bg);color:var(--pick);border-color:#dde4e0}
.stsel.st-cancel{background:var(--gray-bg);color:var(--gray);border-color:#e1e1db}

/* channel tag */
.chtag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:5px;margin-left:6px;vertical-align:middle;font-weight:600;flex-shrink:0}
.chtag.wx{background:#e9f1ec;color:#3a7a52}
.chtag.dt{background:#e9f0f7;color:#3f6ea3}
.chtag.fs{background:#edecf7;color:#5b57b0}

/* SKU 配方编辑 */
.sku-card{border:1px solid var(--line-2);border-radius:var(--r);padding:12px 13px;margin:14px 0;background:#fff;box-shadow:0 1px 3px rgba(20,20,16,.05)}
.sku-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:9px}
.sku-head .s_name{flex:1;min-width:0;border:1px solid transparent;background:none;font-size:16px;font-weight:700;color:var(--ink);border-radius:8px;padding:5px 7px;transition:.12s}
.sku-head .s_name:hover{background:var(--bg)}
.sku-head .s_name:focus{border-color:var(--line-2);box-shadow:none;background:#fff}
.sku-head .s_del,.sz-row .v_del{flex:0 0 auto;width:28px;height:28px;border-radius:7px;color:var(--muted);font-size:12px;background:var(--gray-bg)}
.sku-head .s_del:hover,.sz-row .v_del:hover{background:var(--warn-bg);color:var(--warn)}
.mat-title{font-size:12px;color:var(--muted);font-weight:600;margin:12px 0 6px}
.mats{display:flex;flex-direction:column;gap:6px}
.mat-row{display:grid;grid-template-columns:1fr 64px 60px 34px;gap:6px;align-items:center}
.mat-row .btn{padding:7px 0}
/* 尺寸：一行紧凑（尺寸 + 价格 + 配料按钮 + 删除），配料默认收起 */
.size-block{border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 10px;margin:7px 0;background:#fcfcfb}
.sz-row{display:flex;align-items:center;gap:8px}
.sz-row .v_size{flex:1;min-width:0;padding:7px 10px}
.sz-row .v_yen{flex:0 0 auto;color:var(--muted);font-size:13px;margin-left:2px}
.sz-row .v_price{flex:0 0 auto;width:78px;padding:7px 8px}
.sz-row .v_mat-toggle{flex:0 0 auto;font-size:12.5px;font-weight:600;color:var(--ink-2);background:#fff;border:1px solid var(--line-2);border-radius:8px;padding:6px 11px;transition:.12s}
.sz-row .v_mat-toggle:hover{border-color:#d4d4ce}
.v_mats-wrap{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}
.v_mats-wrap .v_addmat{display:inline-block;margin-top:7px;font-size:12.5px}

/* 蛋糕项编辑器（登记 + 订单详情共用）——标题领衔卡片 + 实色切片 + 步进数量 */
.item-row{border:1px solid var(--line-2);border-radius:var(--r);padding:0;margin:14px 0;background:#fff;box-shadow:0 1px 3px rgba(20,20,16,.05)}
/* 头部：序号 + 蛋糕名(标题) + 状态 + 删除，下方一条分隔线把"是什么"和"配置"分开 */
.item-row .ir-top{display:flex;align-items:center;gap:9px;padding:11px 12px;border-bottom:1px solid var(--line)}
.item-row .ir-no{flex:0 0 auto;width:23px;height:23px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.item-row .ir-top .i_sku{flex:1;min-width:0;font-weight:700;font-size:16px;color:var(--ink);border:1px solid transparent;background:none;border-radius:8px;padding:4px 6px;transition:.12s}
.item-row .ir-top .i_sku:hover{background:var(--bg)}
.item-row .ir-top .i_sku:focus{border-color:var(--line-2);box-shadow:none;background:#fff}
.item-row .ir-top .i_status{flex:0 0 auto}
.item-row .ir-top .i_del{flex:0 0 auto;width:26px;height:26px;border-radius:7px;color:var(--muted);font-size:12px;background:var(--gray-bg)}
.item-row .ir-top .i_del:hover{background:var(--warn-bg);color:var(--warn)}
/* 配置区 */
.item-row .ir-body{padding:11px 12px 12px}
.szchips{display:flex;flex-wrap:wrap;gap:7px}
.szchip{display:inline-flex;align-items:baseline;gap:4px;padding:6px 11px;border:1px solid transparent;border-radius:8px;font-size:13px;background:#f1f1ee;color:var(--ink-2);cursor:pointer;transition:.12s;-webkit-user-select:none;user-select:none}
.szchip i{font-style:normal;font-size:11px;color:var(--muted)}
.szchip:hover{background:#e7e7e1}
.szchip.on{background:var(--brand);color:#fff;font-weight:600}
.szchip.on i{color:rgba(255,255,255,.82)}
.szchip.cust{background:#fff;border:1px dashed var(--line-2)}
.szchip.cust.on{background:var(--brand);border-color:var(--brand)}
.ir-no.clickable{cursor:pointer}
.ir-no.clickable:hover{background:var(--brand);color:#fff}
.ir-collapse{display:block;margin-top:12px;font-size:12.5px;color:var(--muted)}

/* 折叠摘要行：配好的蛋糕收成一行，点开才编辑 */
.item-row.collapsed{display:flex;align-items:center;gap:8px;padding:9px 11px;cursor:default}
.item-row.collapsed:hover{border-color:var(--brand);background:#fcfcfb}
.item-row.collapsed .ir-sum{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:0;padding:0;cursor:pointer;text-align:left}
.ir-sum-main{flex:1;min-width:0;display:flex;align-items:baseline;gap:7px;overflow:hidden}
.ir-sum-main b{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
.ir-sum-main .muted{font-size:12.5px;white-space:nowrap;flex:0 0 auto}
.ir-sum-price{font-weight:700;color:var(--brand);font-size:14px;white-space:nowrap}
.item-row.item-cancelled{opacity:.55}
.item-row.item-cancelled .ir-sum-main b{text-decoration:line-through}
.item-row.collapsed .i_del{flex:0 0 auto;width:26px;height:26px;border-radius:7px;color:var(--muted);font-size:12px;background:var(--gray-bg)}
.item-row.collapsed .i_del:hover{background:var(--warn-bg);color:var(--warn)}

/* 配送信息块 */
.delivery-box{background:var(--brand-soft);border-radius:var(--r-sm);padding:4px 12px 12px;margin:6px 0 2px}
.delivery-box .fld{color:var(--brand-d)}
.item-row .i_size_custom{margin-top:7px}
.qtyrow{display:flex;align-items:center;gap:12px;margin-top:9px}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;flex:0 0 auto}
.stepper button{width:32px;height:32px;font-size:17px;color:var(--brand);background:#fafafa;transition:.12s}
.stepper button:hover{background:var(--brand-soft)}
.stepper .i_qty{width:42px;text-align:center;border:0;border-left:1px solid var(--line-2);border-right:1px solid var(--line-2);border-radius:0;padding:6px 0;-moz-appearance:textfield}
.stepper .i_qty::-webkit-outer-spin-button,.stepper .i_qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper .i_qty:focus{box-shadow:none}
.ir-price{font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.ir-price .i_price{width:66px;padding:6px 8px}
.qtyrow .ir-sub{margin-left:auto;font-size:12.5px;color:var(--muted);white-space:nowrap}
.qtyrow .ir-sub b{color:var(--brand);font-size:14px}
.ir-more-toggle{display:inline-block;margin-top:8px;font-size:12.5px}
.ir-more{margin-top:9px;padding-top:10px;border-top:1px dashed var(--line)}
.ir-more .i_note{margin-bottom:8px}
.filelbl{font-size:12.5px;color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:8px}
.filelbl input[type=file]{font-size:12px;width:auto}
img.thumb.sm{max-width:60px;max-height:60px;margin-top:0;object-fit:cover}

/* 多项订单状态徽标 */
.rollup{display:inline-block;padding:4px 10px;border-radius:7px;font-size:12.5px;font-weight:600;background:var(--gray-bg);color:var(--ink-2)}
.rollup.todo{background:var(--todo-bg);color:var(--todo)}
.rollup.done{background:var(--ok-bg);color:var(--ok)}
.rollup.ok{background:var(--pick-bg);color:var(--pick)}
.rollup.gray{background:var(--gray-bg);color:var(--gray)}

/* agenda timeline */
.ag-head{display:flex;align-items:baseline;gap:10px;margin:22px 2px 8px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.ag-head .ah-date{font-size:14px;color:var(--ink)}
.ag-head .ah-date b{color:var(--brand)}
.ag-head .ah-sum{font-size:12px;color:var(--muted)}
.ag-head .ah-sum.hot{color:var(--todo);font-weight:600}
.ag-empty{color:var(--muted);font-size:13px;padding:2px 4px 6px}
.arow{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;margin:7px 0;cursor:pointer;transition:.12s}
.arow:hover{border-color:var(--line-2);background:#fcfcfb}
.arow.cancelled{opacity:.5}
.arow .aname{font-weight:600;white-space:nowrap}
.arow .adesc{color:var(--muted);font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arow .aslot{color:var(--muted);font-size:12.5px;white-space:nowrap}
.arow .aamount{font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.arow-meta{display:flex;align-items:center;gap:8px;white-space:nowrap;flex:0 0 auto}

/* 排期看板（桌面：横向，每天一列，一屏约 3 列，列高吃满视口） */
#view.wide{max-width:1360px}
.board{display:flex;gap:14px;overflow-x:auto;padding:6px 2px 10px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.board::-webkit-scrollbar{height:9px}
.board::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px}
.bcol{flex:0 0 calc((100% - 28px) / 3);background:#fbfbfa;border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;scroll-snap-align:start;height:calc(100vh - 218px);min-height:360px}
.bcol.today{border-color:var(--brand);background:#fff;box-shadow:0 0 0 2px var(--brand-soft)}
.bcol-head{padding:10px 12px;border-bottom:1px solid var(--line);flex:0 0 auto}
.bch-date{font-size:13.5px;color:var(--ink-2)}
.bch-date b{color:var(--brand)}
.bcol.today .bch-date{color:var(--ink)}
.bch-sum{font-size:11.5px;color:var(--muted);margin-top:3px}
.bch-sum.hot{color:var(--todo);font-weight:600}
.bcol-body{padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;flex:1 1 auto}
.bcol-empty{color:var(--muted);font-size:13px;text-align:center;padding:18px 0}
.bcard{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;padding:9px 10px;cursor:pointer;transition:.12s}
.bcard:hover{border-color:var(--brand);box-shadow:0 1px 4px rgba(20,20,16,.06)}
.bcard.cancelled{opacity:.5}
.bc-top{display:flex;align-items:center;gap:8px}
.bc-top .bc-slot{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.bc-name{font-weight:600;font-size:14px;margin-top:8px}
.bc-desc{color:var(--muted);font-size:12.5px;margin-top:3px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bc-foot{margin-top:8px}
.bp{font-size:13px;font-weight:600}
.bp.ok{color:var(--ink-2)}
.bp.warn{color:var(--warn)}

/* reminders */
.remind{border:1px solid var(--line);border-left:2px solid var(--brand);border-radius:var(--r-sm);padding:12px;margin:9px 0;background:#fff}
.remind.notify{border-left-color:#3f6ea3}
.remind .rn{font-size:11.5px;font-weight:600;letter-spacing:.2px;color:var(--muted);margin-bottom:5px}
.remind .msg{font-size:14px;margin-bottom:9px;line-height:1.5}

/* order card (客户历史/搜索) */
.order{border:1px solid var(--line);border-radius:var(--r-sm);padding:13px;margin:9px 0;background:#fff}
.order .name{font-weight:600}
.order .meta{color:var(--muted);font-size:13px;margin-top:3px}
.order.cancelled{opacity:.5}
.order .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px;align-items:center}

/* drawer */
.drawer-mask{position:fixed;inset:0;background:rgba(20,20,16,.34);opacity:0;pointer-events:none;transition:.2s;z-index:50}
.drawer-mask.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;z-index:60;background:var(--card);transition:transform .26s cubic-bezier(.32,.72,.31,1);overflow-y:auto;-webkit-overflow-scrolling:touch}
.drawer .dwrap{padding:18px 18px calc(24px + env(safe-area-inset-bottom))}
.drawer-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0}
.drawer-head b{font-size:12.5px;color:var(--muted);font-weight:600;letter-spacing:.3px}
.dclose{font-size:17px;color:var(--muted);width:32px;height:32px;border-radius:8px;background:var(--gray-bg)}
.dclose:hover{background:var(--line-2)}
@media(min-width:721px){
  .drawer{top:0;right:0;height:100%;width:440px;transform:translateX(100%);border-left:1px solid var(--line-2)}
  .drawer.open{transform:translateX(0)}
}
@media(max-width:720px){
  .drawer{left:0;right:0;bottom:0;max-height:90vh;border-radius:18px 18px 0 0;transform:translateY(101%);box-shadow:0 -6px 28px rgba(20,20,16,.14)}
  .drawer.open{transform:translateY(0)}
  .drawer-head::before{content:'';position:absolute;top:-8px;left:50%;transform:translateX(-50%);width:38px;height:4px;border-radius:99px;background:var(--line-2)}
}

/* login */
.overlay{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:100;padding:22px}
.overlay .box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 26px;width:100%;max-width:320px;text-align:center}
.overlay .logo{font-size:26px;font-weight:600;color:var(--ink);letter-spacing:9px;margin-left:9px}
.overlay p{color:var(--muted);font-size:13px;margin:10px 0 22px}

/* 实时保存状态（右上角常驻） */
.save-status{position:fixed;top:14px;right:18px;z-index:30;display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:600;line-height:1;
  background:#fff;border:1px solid var(--line-2);color:var(--ink-2);box-shadow:0 2px 8px rgba(20,20,16,.06);
  pointer-events:none;opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .2s}
.save-status.show{opacity:1;transform:none}
.save-status.dim{opacity:.5}
.save-status .dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:savepulse 1s ease-in-out infinite}
.save-status.saving{color:var(--todo);border-color:#e6dcc0;background:var(--todo-bg)}
.save-status.saved{color:var(--ok);border-color:#cfe2d6;background:var(--ok-bg)}
.save-status.error{color:var(--warn);border-color:var(--warn-bg);background:var(--warn-bg)}
.save-status.ready{color:var(--muted)}
@keyframes savepulse{0%,100%{opacity:1}50%{opacity:.3}}

/* toast */
#toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(8px);background:#1b1b19;color:#fff;
  padding:10px 18px;border-radius:8px;font-size:14px;opacity:0;transition:.22s;z-index:200;pointer-events:none;max-width:88%}
#toast.show{opacity:.97;transform:translateX(-50%) translateY(0)}
#toast.err{background:var(--warn)}

/* misc */
.empty{text-align:center;color:var(--muted);padding:40px 12px;font-size:14px}
.kv{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;border-bottom:1px solid var(--line)}
.kv:last-child{border-bottom:0}
.kv span{color:var(--ink-2)}
img.thumb{max-width:100%;border-radius:var(--r-sm);margin-top:10px}
.linklike{color:var(--brand);padding:0;font-size:13.5px}
hr.sep{border:0;border-top:1px solid var(--line);margin:15px 0}
code{background:var(--brand-soft);padding:1px 6px;border-radius:5px;font-size:12.5px;color:var(--brand-d)}

/* ========== 手机端优化 ========== */
@media(max-width:767px){
  /* iOS 关键修复：文本输入 <16px 会让 Safari 聚焦时自动放大，全部抬到 16px */
  input[type=text],input[type=tel],input[type=number],input[type=date],input[type=password],textarea{font-size:16px}
  .search{font-size:16px;width:auto;flex:1}

  /* 顶部：隐藏冗余「登记」按钮（用底部 FAB），搜索占满整行 */
  .hide-mobile{display:none !important}
  .phead{align-items:center}
  .phead-r{flex:1 1 100%;margin-left:0;margin-top:6px}

  /* 排期行 → 两行：上行 状态+名字…金额/未付/时间；下行 明细 */
  .arow{flex-wrap:wrap;gap:7px 8px;padding:11px 13px}
  .arow .aname{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
  .arow .adesc{order:5;flex-basis:100%;white-space:normal;font-size:12.5px;line-height:1.4}
  .arow-meta{margin-left:auto}

  /* 触控目标加大：状态下拉 / 步进器 / 删除 更好按 */
  .stsel{padding:7px 11px;font-size:13px}
  .stepper button{width:38px;height:38px}
  .stepper .i_qty{width:46px;font-size:16px}
  .item-row .ir-top .i_del,.item-row.collapsed .i_del,.sku-head .s_del,.sz-row .v_del{width:32px;height:32px}
  .szchip{padding:7px 12px;font-size:13.5px}

  /* 实时保存指示器移到左下（让开顶部搜索/FAB），不再压住按钮 */
  .save-status{top:auto;bottom:calc(70px + env(safe-area-inset-bottom));left:12px;right:auto;font-size:12px;padding:5px 10px}
  .save-status.dim{opacity:.5}

  /* 底部抽屉：主操作按钮更大更好按 */
  .drawer .btn.block{padding:13px;font-size:15px}
  .drawer .dwrap{padding:16px 16px calc(20px + env(safe-area-inset-bottom))}
}
