:root{--bg:#faf5ee;--surface:#fff;--surface-2:#fff7ee;--ink:#3a2e26;--ink-2:#8a7a6e;--ink-3:#b5a79a;--primary:#d85a30;--primary-dark:#b2451f;--primary-soft:#fdebe2;--amber:#e8a33d;--amber-soft:#fdf3e0;--green:#2e8b57;--green-soft:#e7f4ec;--red:#c7503f;--red-soft:#fbecea;--border:#f0e4d6;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--shadow:0 2px 12px #8c5a2814;--shadow-lg:0 8px 28px #8c5a2829;--tab-h:58px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,HarmonyOS Sans SC,MiSans,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}.app-shell{max-width:480px;min-height:100dvh;margin:0 auto}.page{padding:14px 16px calc(var(--tab-h) + env(safe-area-inset-bottom) + 20px);animation:.22s pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.topbar{justify-content:space-between;align-items:center;padding:6px 2px 14px;display:flex}.topbar h1{letter-spacing:.5px;font-size:22px;font-weight:600}.topbar .sub{color:var(--ink-2);margin-top:2px;font-size:12px}.icon-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--ink-2);border-radius:50%;justify-content:center;align-items:center;transition:transform .15s;display:flex}.icon-btn:active{transform:scale(.92)}.hero{color:#fff;box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#e05a2e 0%,#c2441f 55%,#a8381c 100%);border-radius:22px;padding:26px 22px 22px;position:relative;overflow:hidden}.hero:after{content:"";background:#ffffff14;border-radius:50%;width:130px;height:130px;position:absolute;top:-30px;right:-30px}.hero-label{opacity:.85;align-items:center;gap:6px;font-size:13px;display:flex}.hero-name{letter-spacing:2px;margin:6px 0 2px;font-size:44px;font-weight:700;line-height:1.2}.hero-round{opacity:.9;margin-top:4px;font-size:13px}.hero-progress{background:#ffffff38;border-radius:99px;height:8px;margin-top:16px;overflow:hidden}.hero-progress>div{background:#ffd9a0;border-radius:99px;height:100%;transition:width .4s}.big-btn{background:var(--primary);color:#fff;border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;padding:15px;font-size:17px;font-weight:600;transition:transform .12s,opacity .12s;display:flex;box-shadow:0 6px 18px #d85a3052}.big-btn:active{transform:scale(.97)}.big-btn:disabled{opacity:.45;box-shadow:none}.big-btn.secondary{background:var(--surface);color:var(--primary-dark);border:1.5px solid var(--primary);box-shadow:none}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border);padding:16px}.card+.card{margin-top:14px}.card-title{color:var(--ink-2);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.member-row{align-items:center;gap:12px;padding:9px 0;display:flex}.member-row+.member-row{border-top:1px dashed var(--border)}.avatar{color:#fff;letter-spacing:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;font-weight:600;display:flex}.member-name{align-items:center;gap:4px;font-size:15px;font-weight:500;display:flex}.member-sub{color:var(--ink-2);margin-top:1px;font-size:12px}.member-row .grow{flex:1;min-width:0}.badge{white-space:nowrap;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:500}.badge-done{background:var(--green-soft);color:var(--green)}.badge-failed{background:var(--amber-soft);color:#b06e12}.badge-pending{color:var(--ink-3);background:#f3efe9}.badge-current{background:var(--primary-soft);color:var(--primary-dark);border:1px solid var(--primary)}.field{margin-bottom:18px}.field-label{color:var(--ink-2);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.input,select.input{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--ink);outline:none;padding:12px 14px;font-size:16px;transition:border-color .15s}.input:focus{border-color:var(--primary)}.host-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.host-chip{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;transition:all .15s;display:flex}.host-chip .chip-name{font-size:13px;font-weight:500}.host-chip .chip-state{color:var(--ink-3);font-size:11px}.host-chip.selected{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.host-chip:disabled{opacity:.45}.stepper{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:8px;display:flex}.stepper button{border-radius:var(--radius-sm);background:var(--surface);width:44px;height:44px;color:var(--primary-dark);box-shadow:var(--shadow);border:none;justify-content:center;align-items:center;font-size:22px;font-weight:600;display:flex}.stepper button:active{transform:scale(.94)}.stepper button:disabled{opacity:.35;box-shadow:none}.stepper .num{color:var(--primary-dark);text-align:center;min-width:60px;font-size:28px;font-weight:700}.pick-grid{flex-wrap:wrap;gap:8px;display:flex}.pick-item{border:1.5px solid var(--border);background:var(--surface);border-radius:99px;align-items:center;gap:6px;padding:6px 12px 6px 6px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.pick-item .avatar{width:28px;height:28px;font-size:12px}.pick-item.on{border-color:var(--green);background:var(--green-soft);color:var(--green)}.banner{border-radius:var(--radius-md);align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;font-size:14px;font-weight:500;animation:.25s pageIn;display:flex}.banner-ok{background:var(--green-soft);color:var(--green)}.banner-fail{background:var(--amber-soft);color:#b06e12}.rec-item{align-items:center;gap:12px;padding:10px 0;display:flex}.rec-item+.rec-item{border-top:1px dashed var(--border)}.rec-item .avatar{width:38px;height:38px;font-size:14px}.rec-main{flex:1;min-width:0}.rec-title{font-size:14px;font-weight:500}.rec-sub{color:var(--ink-2);margin-top:1px;font-size:12px}.rec-del{color:var(--ink-3);background:0 0;border:none;border-radius:8px;padding:6px;display:flex}.rec-del:active{background:var(--red-soft);color:var(--red)}.round-group+.round-group{margin-top:18px}.round-head{color:var(--ink-2);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:12px 8px}.stat-cell .n{color:var(--primary-dark);font-size:22px;font-weight:700}.stat-cell .l{color:var(--ink-2);margin-top:2px;font-size:12px}.sort-btn{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--ink-2);border-radius:8px;justify-content:center;align-items:center;display:flex}.sort-btn:disabled{opacity:.3}.danger-zone{background:var(--red-soft);border-radius:var(--radius-lg);border:1px solid #f3c9c2;padding:16px}.danger-btn{border:1.5px solid var(--red);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--red);margin-top:10px;padding:12px;font-size:14px;font-weight:600}.tabbar{-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom);z-index:50;background:#fffffff5;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-item{color:var(--ink-3);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 0 7px;font-size:11px;transition:color .15s;display:flex}.tab-item.active{color:var(--primary-dark);font-weight:600}.mask{z-index:80;background:#3c281473;animation:.2s fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sheet{background:var(--bg);width:100%;max-width:480px;padding:10px 16px calc(env(safe-area-inset-bottom) + 16px);z-index:90;border-radius:22px 22px 0 0;max-height:86dvh;animation:.28s cubic-bezier(.32,.72,0,1) sheetUp;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}@keyframes sheetUp{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}.sheet-handle{background:var(--border);border-radius:99px;width:42px;height:4px;margin:4px auto 14px}.toast-wrap{z-index:100;pointer-events:none;flex-direction:column;gap:8px;width:calc(100% - 40px);max-width:440px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%)}.toast{color:#fff;text-align:center;box-shadow:var(--shadow-lg);background:#3a2e26;border-radius:12px;padding:11px 16px;font-size:14px;font-weight:500;animation:.25s toastIn}.toast-ok{background:var(--green)}.toast-fail{background:var(--amber);color:#4a3410}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.empty-tip{text-align:center;color:var(--ink-3);padding:30px 0;font-size:13px}.modal-head{justify-content:space-between;align-items:center;padding:4px 0 12px;display:flex}.modal-head h3{font-size:17px;font-weight:600}.dialog-card{background:var(--surface);border-radius:var(--radius-lg);width:calc(100% - 48px);max-width:360px;box-shadow:var(--shadow-lg);z-index:95;flex-direction:column;align-items:center;padding:26px 22px 20px;animation:.22s cubic-bezier(.32,.72,0,1) dialogIn;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes dialogIn{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.dialog-icon{background:var(--primary-soft);width:52px;height:52px;color:var(--primary);border-radius:16px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.dialog-title{color:var(--ink);font-size:17px;font-weight:700}.dialog-desc{color:var(--ink-2);text-align:center;margin:6px 0 16px;font-size:12px}.dialog-card .input{text-align:center;letter-spacing:2px}.dialog-error{color:var(--red);text-align:center;align-self:stretch;margin-top:8px;font-size:12px}.dialog-btns{gap:10px;width:100%;margin-top:16px;display:flex}
