:root{--tea: #b5744a;--deep: #4a342a;--matcha: #748f68;--ink: #46392f;--ink-soft: #6b5a4c;--dim: #9a8b7c;--milk: #fbf4ec;--paper: #fbf7f2;--line: #eadfd3;--bad: #e4574c;--shadow: 0 1px 6px rgba(74, 52, 42, .1);--shadow-modal: 0 8px 28px rgba(74, 52, 42, .28);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--milk);color:var(--ink);font:15px/1.45 -apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}.page{max-width:520px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 12px) 14px calc(env(safe-area-inset-bottom) + 96px)}.top{display:flex;align-items:baseline;justify-content:space-between;padding:6px 4px 12px}.top h1{margin:0;font-size:22px;color:var(--tea)}.sub{color:var(--tea);font-size:14px;text-decoration:underline;text-underline-offset:3px}.card{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:14px;margin-bottom:12px}.card h2,.sheet h2{margin:0 0 10px;font-size:16px;color:var(--deep)}.group+.group{margin-top:10px}.group h3{margin:0 0 2px;font-size:13px;font-weight:600;color:var(--tea)}.row{display:flex}.gap{gap:8px}.between{justify-content:space-between;align-items:center}.center{align-items:center}.grow{flex:1;min-width:0}.dim{color:var(--dim)}.small{font-size:12px}.hint{margin:10px 0 0;font-size:13px;color:var(--ink-soft)}.bad{margin:8px 0 0;font-size:13px;color:var(--bad)}.lock{font-size:12px;color:var(--dim)}.line{display:flex;align-items:center;gap:10px;min-height:46px;padding:6px 0;border-top:1px solid var(--line)}.card h2+.line,.group h3+.line{border-top:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{display:flex;flex-direction:column;background:var(--paper);border-radius:10px;padding:8px 10px;font-size:12px}.stat b{font-size:15px;color:var(--deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button{border:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.35}button:not(:disabled):active{opacity:.7}.primary,.ghost{height:44px;padding:0 18px;border-radius:10px;font-weight:600}.primary{background:var(--tea);color:#fff}.ghost{background:var(--paper);color:var(--deep);box-shadow:inset 0 0 0 1px var(--line)}.wide{width:100%}.link{background:none;color:var(--tea);font-size:14px;padding:4px}.code{display:block;width:100%;height:120px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font:12px/1.4 ui-monospace,Menlo,monospace;word-break:break-all;resize:vertical}.code:focus,.num:focus,select:focus{outline:none;border-color:var(--tea)}.card .code+.row,.card .bad+.row{margin-top:10px}.num{width:128px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);text-align:right;font-variant-numeric:tabular-nums;font-size:16px}.stepper{display:flex;align-items:center;flex-shrink:0;background:var(--paper);border-radius:10px;box-shadow:inset 0 0 0 1px var(--line)}.stepper button{width:38px;height:38px;background:none;color:var(--tea);font-size:18px;font-weight:700}.stepper span{min-width:56px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.switch{position:relative;width:46px;height:28px;border-radius:9999px;background:var(--line);flex-shrink:0;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:var(--shadow);transition:transform .15s}.switch.on{background:var(--matcha)}.switch.on:after{transform:translate(18px)}.slider{accent-color:var(--tea);height:28px}.heart{min-width:52px;text-align:right;color:#d0607a;font-size:14px;font-variant-numeric:tabular-nums}select{width:100%;height:36px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:16px}select.changed{border-color:var(--tea);color:var(--tea)}.pick{display:flex;flex-direction:column;gap:2px;margin-top:4px}.person{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.card h2+.person{border-top:0}.person.off .face{filter:grayscale(1);opacity:.5}.face{width:52px;height:52px;border-radius:50%;background:var(--paper);object-fit:cover;flex-shrink:0}.face.cat{object-fit:contain}.dock{position:fixed;left:0;right:0;bottom:0;padding:10px 14px calc(env(safe-area-inset-bottom) + 10px);background:linear-gradient(rgba(251,244,236,0),var(--milk) 30%)}.dock .primary{display:block;max-width:492px;margin:0 auto;height:48px;box-shadow:0 3px 9px #4a342a24}.mask{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#4a342a66;z-index:10}.sheet{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;background:#fff;border-radius:20px 20px 0 0;box-shadow:var(--shadow-modal);padding:18px 16px calc(env(safe-area-inset-bottom) + 16px)}.sheet .code{margin-bottom:10px}.sheet .hint{margin-bottom:12px}.changes{margin:0 0 10px;padding:8px 10px 8px 26px;max-height:160px;overflow-y:auto;background:var(--paper);border-radius:10px;font-size:13px;color:var(--ink-soft)}@media(min-width:560px){.mask{align-items:center}.sheet{border-radius:18px}}.count{float:right;font-size:13px;font-weight:400;color:var(--dim)}.name{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:16px}.name:focus{outline:none;border-color:var(--tea)}.small-btn{height:34px;padding:0 14px}.person.add{background:var(--paper);border-top:0;border-radius:12px;padding:10px;margin-top:6px}.person.add .name,.person.add select{background:#fff}
