:root{--navy: #0b1f3a;--blue: #1f6feb;--blue-soft: #e8f0fd;--bg: #f4f6f9;--white: #ffffff;--grey: #6b7280;--line: #e5e7eb;--ink: #111827;--green: #15803d;--green-soft: #e7f6ec;--amber: #b45309;--amber-soft: #fef3c7;--red: #b91c1c;--red-soft: #fdecec;--radius: 16px;--shadow: 0 1px 2px rgba(11, 31, 58, .06), 0 4px 12px rgba(11, 31, 58, .06)}*{box-sizing:border-box}html,body{margin:0;background:#dde3ec;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);-webkit-tap-highlight-color:transparent}#app{min-height:100dvh}.shell{max-width:480px;min-height:100dvh;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;position:relative;box-shadow:0 0 40px #00000014}@media (max-width: 480px){.shell{box-shadow:none}}.appbar{background:var(--navy);color:#fff;padding:calc(env(safe-area-inset-top,0px) + 14px) 16px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;position:sticky;top:0;z-index:5}.appbar .t{font-size:18px;font-weight:700}.appbar .s{font-size:12px;opacity:.78;margin-top:2px}.content{flex:1;padding:14px 14px 96px;display:flex;flex-direction:column;gap:12px}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px}.row{display:flex;justify-content:space-between;align-items:center;gap:8px}.list{display:flex;flex-direction:column;gap:6px}.muted{color:var(--grey);font-size:12px}.small{font-size:12px}.money{font-weight:700;color:var(--navy);white-space:nowrap}.h{font-size:13px;font-weight:700;color:var(--navy)}.sync{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.pill{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.p-blue{background:var(--blue-soft);color:var(--blue)}.p-green{background:var(--green-soft);color:var(--green)}.p-amber{background:var(--amber-soft);color:var(--amber)}.p-red{background:var(--red-soft);color:var(--red)}.p-grey{background:#eef0f3;color:var(--grey)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--blue);color:#fff;border-radius:14px;padding:13px 14px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;text-align:center}.btn:disabled{opacity:.5;cursor:default}.btn.navy{background:var(--navy)}.btn.ghost{background:var(--white);color:var(--navy);border:1px solid var(--line)}.btn.danger{background:var(--white);color:var(--red);border:1px solid #f3c4c4}.btn.sm{padding:7px 11px;font-size:12px;border-radius:11px}.btn.block{width:100%}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.input{width:100%;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px 13px;font-size:15px;font-family:inherit;color:var(--ink)}.input:focus{outline:2px solid var(--blue);border-color:transparent}.num{width:84px;text-align:center;font-weight:700;font-size:16px;padding:10px 6px}.qty{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.qty label{font-size:11px;color:var(--grey);display:flex;flex-direction:column;gap:4px}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--white);border-radius:999px;padding:6px 12px;font-size:12px;white-space:nowrap;font-family:inherit;color:var(--ink);cursor:pointer}.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}.stat{background:var(--white);border-radius:14px;padding:12px;box-shadow:var(--shadow)}.stat .n{font-size:18px;font-weight:700;color:var(--navy)}.stat .l{font-size:11px;color:var(--grey);margin-top:2px}.bnav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:var(--white);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 4px calc(env(safe-area-inset-bottom,0px) + 8px);z-index:6}.bnav button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;font:inherit;font-size:11px;color:var(--grey);flex:1;padding:6px 0;cursor:pointer}.bnav button.on{color:var(--blue);font-weight:700}.bnav .ic{display:block;width:22px;height:22px;margin:0 auto 3px;border-radius:7px;background:#e5e7eb}.bnav button.on .ic{background:var(--blue)}.toast{position:fixed;left:50%;bottom:86px;transform:translate(-50%);background:var(--navy);color:#fff;padding:11px 16px;border-radius:12px;font-size:13px;box-shadow:0 8px 24px #00000040;z-index:20;max-width:90vw}.err{background:var(--red-soft);color:var(--red);border-radius:12px;padding:10px 12px;font-size:13px}.warn{background:var(--amber-soft);color:#7c4a03;border-radius:12px;padding:10px 12px;font-size:13px}.total{background:var(--navy);color:#fff;border-radius:16px;padding:12px 14px}.total .amt{font-size:22px;font-weight:700;margin:2px 0 6px}.lrow{display:flex;justify-content:space-between;font-size:12px;padding:2px 0}.login{min-height:100dvh;background:var(--navy);display:flex;flex-direction:column}.brand{padding:56px 24px 28px;text-align:center;color:#fff}.logo{width:60px;height:60px;border-radius:18px;background:var(--blue);margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px;color:#fff}.sheet-wrap{background:var(--bg);flex:1;border-radius:24px 24px 0 0;padding:24px 20px calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;flex-direction:column;gap:10px}.menu-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:#ffffff1f;width:40px;height:40px;border-radius:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer;flex:none}.menu-btn span{display:block;width:18px;height:2px;border-radius:2px;background:#fff}.shade{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b1f3a73;z-index:30;display:flex;justify-content:center;align-items:flex-start}.menu-panel{width:100%;max-width:480px;margin-top:calc(env(safe-area-inset-top,0px) + 62px);padding:0 12px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-height:calc(100dvh - 80px);overflow-y:auto}.menu-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font:inherit;font-size:15px;font-weight:600;color:var(--navy);background:var(--white);border-radius:14px;padding:13px 18px;width:220px;text-align:left;box-shadow:var(--shadow);cursor:pointer}.menu-item:disabled{opacity:.55}.menu-body{width:min(100%,340px);background:var(--white);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}.avatar{width:44px;height:44px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;font-weight:700}.shell.wide{max-width:720px}.add-wide{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px dashed #b8c7e6;background:var(--white);color:var(--blue);width:100%;font:inherit;font-size:16px;font-weight:700;padding:16px;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.add-wide .plus{font-size:22px;line-height:1}.empty{text-align:center;color:var(--grey);font-size:13px;padding:18px 0}.li{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;border-left:4px solid var(--blue)}.li-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.li-name{font-weight:700;font-size:15px;color:var(--navy)}.li-sub{font-size:12px;color:var(--grey);margin-top:2px}.x{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--red-soft);color:var(--red);width:30px;height:30px;border-radius:10px;font-size:13px;cursor:pointer;flex:none}.li-inputs{display:grid;grid-template-columns:repeat(3,1fr) 1.4fr;gap:8px;margin-top:10px;align-items:end}.li-inputs label{font-size:11px;color:var(--grey);display:flex;flex-direction:column;gap:4px;min-width:0}.li-inputs .num{width:100%}.li-amt{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--grey);text-align:right}.li-amt b{font-size:15px;color:var(--navy);background:var(--blue-soft);border-radius:12px;padding:11px 8px;white-space:nowrap}.li-foot{margin-top:8px;font-size:11px;color:var(--grey)}.bbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:720px;background:var(--bg);padding:8px 12px calc(env(safe-area-inset-bottom,0px) + 10px);box-shadow:0 -6px 18px #0b1f3a1a;z-index:8;display:flex;flex-direction:column;gap:8px}.bbar-total{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font:inherit;width:100%;background:var(--navy);color:#fff;border-radius:14px;padding:9px 14px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;text-align:left}.bt-l{display:flex;align-items:baseline;gap:10px}.bt-lbl{font-size:12px;opacity:.8}.bt-amt{font-size:18px;font-weight:700}.bt-q{font-size:12px;opacity:.8}.bdetails{background:var(--white);border-radius:14px;padding:8px 14px;box-shadow:var(--shadow);max-height:40dvh;overflow-y:auto}.bbar .btn{padding:11px 12px}.picker{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:40;display:flex;flex-direction:column;max-width:960px;margin:0 auto}.picker-top{display:flex;gap:8px;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 10px;background:var(--navy)}.picker-top .btn{white-space:nowrap}.picker-list{flex:1;overflow-y:auto;padding:10px 12px calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;flex-direction:column;gap:8px}.pick{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font:inherit;text-align:left;width:100%;background:var(--white);border-radius:14px;box-shadow:var(--shadow);padding:13px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;color:var(--ink)}.pick.added{opacity:.55;cursor:default}.pk-main{display:flex;flex-direction:column;gap:3px;min-width:0}.pk-name{font-weight:700;font-size:15px;color:var(--navy)}.pk-sub{font-size:12px;color:var(--grey)}.pk-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;color:var(--grey);white-space:nowrap}.pk-side b{font-size:14px;color:var(--navy)}.hero{background:linear-gradient(135deg,#0b1f3a,#17406f);color:#fff;padding:calc(env(safe-area-inset-top,0px) + 18px) 18px 20px;border-radius:0 0 26px 26px}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.hero-name{font-size:22px;font-weight:700;letter-spacing:.2px}.hero-route{font-size:13px;opacity:.8;margin-top:3px}.hero-day{display:flex;gap:10px;align-items:baseline;margin-top:14px}.hero-dayname{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;background:#ffffff29;padding:4px 10px;border-radius:999px}.hero-date{font-size:14px;opacity:.9}.home{padding-top:16px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-card{background:var(--white);border-radius:18px;padding:14px 14px 13px;box-shadow:var(--shadow);border-top:4px solid var(--blue)}.stat-card.c-green{border-top-color:#16a34a}.stat-card.c-amber{border-top-color:#d97706}.stat-card.c-navy{border-top-color:var(--navy)}.stat-label{font-size:12px;color:var(--grey);font-weight:600;letter-spacing:.2px}.stat-value{font-size:26px;font-weight:800;color:var(--navy);margin-top:6px}.stat-value.small-value,.small-value{font-size:17px}.notice{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:100%;font:inherit;display:flex;justify-content:space-between;align-items:center;background:var(--amber-soft);color:#7c4a03;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:600;cursor:pointer;text-align:left}.notice-go{font-weight:800}.start-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:100%;font:inherit;font-size:16px;font-weight:800;color:#fff;background:var(--blue);border-radius:16px;padding:16px;cursor:pointer;box-shadow:0 8px 20px #1f6feb47}.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--white);border-radius:16px;padding:14px;text-align:left;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px}.quick-title{font-size:15px;font-weight:700;color:var(--navy)}.quick-sub{font-size:12px;color:var(--grey)}.sum-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:8px}.sum-card{background:var(--white);border-radius:14px;padding:11px 10px;box-shadow:var(--shadow)}.sum-label{font-size:11px;color:var(--grey);font-weight:600}.sum-value{font-size:18px;font-weight:800;color:var(--navy);margin-top:4px}.link-row{display:flex;justify-content:flex-end}.link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--blue);font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:2px 0}.sec-h{font-size:12px;font-weight:800;color:var(--grey);text-transform:uppercase;letter-spacing:.8px;margin-top:6px}.bcard{background:var(--white);border-radius:14px;box-shadow:var(--shadow);padding:12px 14px;display:flex;align-items:center;gap:10px}.bcard-main{flex:1;min-width:0}.bcard-title{font-size:14px;font-weight:700;color:var(--navy);overflow-wrap:anywhere}.bcard-sub{font-size:12px;color:var(--grey);margin-top:2px}.bcard-err{font-size:12px;color:var(--red);margin-top:4px}.irows{display:flex;flex-direction:column;gap:8px}.irow{background:var(--white);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.irow-main{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;width:100%;font:inherit;text-align:left;display:flex;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;color:var(--ink)}.irow-main:disabled{cursor:default}.irow-l{min-width:0;flex:1}.irow-name{font-size:14px;font-weight:700;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.irow-sub{font-size:12px;color:var(--grey);margin-top:2px}.irow-err{font-size:12px;color:var(--red);margin-top:3px}.irow-r{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}.irow-amt{font-size:14px;font-weight:800;color:var(--navy)}.irow-del{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:100%;background:var(--red-soft);color:var(--red);font:inherit;font-size:12px;font-weight:700;padding:8px;cursor:pointer}.empty{text-align:center;color:var(--grey);font-size:13px;padding:20px 0}.menu-ic{display:block;width:22px;height:16px;margin:0 auto 3px;position:relative}.menu-ic i{display:block;height:2px;border-radius:2px;background:var(--grey);margin-bottom:4px}.bnav button.on .menu-ic i{background:var(--blue)}
