:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--c-bg:#eaf3de;--c-card:#fff;--c-border:#c0dd97;--c-primary:#3b6d11;--c-on-primary:#fff;--c-accent:#3b6d11;--c-secondary-border:#639922;--c-secondary-text:#27500a;--c-text:#173404;--c-text-2:#27500a;--c-hint:#3b6d11;--c-chip-bg:#eaf3de;--c-chip-text:#27500a;--c-warn-bg:#faeeda;--c-warn-text:#854f0b;--c-disabled-bg:#f1efe8;--c-disabled-text:#5f5e5a;--c-error-bg:#fcebeb;--c-error-text:#a32d2d;--c-toggle-track-off:#5f5e5a;--c-toggle-knob-off:#fff;--c-toggle-track-on:#3b6d11;--c-toggle-knob-on:#fff;--tabbar-h:64px}@media (prefers-color-scheme:dark){:root{--c-bg:#faeeda;--c-card:#fff;--c-border:#f5c4b3;--c-primary:#c24a22;--c-on-primary:#fff;--c-accent:#993c1d;--c-secondary-border:#f0997b;--c-secondary-text:#712b13;--c-text:#4a1b0c;--c-text-2:#854f0b;--c-hint:#993c1d;--c-chip-bg:#faece7;--c-chip-text:#712b13;--c-warn-bg:#faeeda;--c-warn-text:#854f0b;--c-disabled-bg:#f1efe8;--c-disabled-text:#5f5e5a;--c-error-bg:#fcebeb;--c-error-text:#a32d2d;--c-toggle-track-off:#d3d1c7;--c-toggle-knob-off:#fff;--c-toggle-track-on:#c24a22;--c-toggle-knob-on:#fff}}html{background:var(--c-bg);font-size:17px}*{box-sizing:border-box}body{background:var(--c-bg);color:var(--c-text);-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.45}h1{margin:0 0 12px;font-size:1.4rem}a{color:var(--c-accent)}.muted{color:var(--c-hint)}.page{padding:16px 16px calc(var(--tabbar-h) + 24px)}.fullscreen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}button{min-width:48px;min-height:48px;font:inherit;border:1.5px solid var(--c-primary);background:var(--c-primary);color:var(--c-on-primary);cursor:pointer;border-radius:14px;padding:0 16px}button.secondary{color:var(--c-secondary-text);border-color:var(--c-secondary-border);background:0 0}button:disabled,button.secondary:disabled{background:var(--c-disabled-bg);color:var(--c-disabled-text);border-color:var(--c-disabled-bg);cursor:default}button.danger{background:var(--c-error-bg);color:var(--c-error-text);border-color:var(--c-error-text)}button.full{width:100%}.banner{background:var(--c-card);border:.5px solid var(--c-border);border-radius:14px;padding:12px 16px}.banner-error{background:var(--c-error-bg);color:var(--c-error-text);border-color:var(--c-error-bg)}.tabbar{height:var(--tabbar-h);background:var(--c-card);border-top:.5px solid var(--c-border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:48px;color:var(--c-text-2);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:1rem;text-decoration:none;display:flex}.tab-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:26px;height:26px}.tab.active{color:var(--c-accent);font-weight:600}.tab.active .tab-icon{stroke-width:2.3px}.toggle{background:var(--c-bg);width:100%;color:var(--c-text);border-color:var(--c-bg);justify-content:space-between;align-items:center;gap:12px;display:flex}.toggle:disabled{border-color:var(--c-disabled-bg)}.toggle-track{background:var(--c-toggle-track-off);border-radius:15px;flex:none;width:52px;height:30px;transition:background .15s;position:relative}.toggle-knob{background:var(--c-toggle-knob-off);border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle.on .toggle-track{background:var(--c-toggle-track-on)}.toggle.on .toggle-knob{background:var(--c-toggle-knob-on);transform:translate(22px)}.stepper{align-items:center;gap:8px;display:inline-flex}.stepper button{width:48px;color:var(--c-secondary-text);border-color:var(--c-secondary-border);background:0 0;padding:0;font-size:1.4rem}.stepper button:disabled{background:var(--c-disabled-bg);color:var(--c-disabled-text);border-color:var(--c-disabled-bg)}.stepper-value{text-align:center;min-width:5em}.stepper-value.stepper-num{min-width:2em;font-size:1.2rem;font-weight:600}.card{background:var(--c-card);border:.5px solid var(--c-border);border-radius:16px;margin-bottom:14px;padding:4px 16px 16px}.card h2{margin:12px 0 8px;font-size:1.1rem}.card p{margin:6px 0;line-height:1.5}.card-title{min-height:48px;color:var(--c-text);justify-content:space-between;align-items:center;font-size:1.2rem;font-weight:600;text-decoration:none;display:flex}.back{align-items:center;min-height:48px;text-decoration:none;display:inline-flex}.row{border-top:.5px solid var(--c-border);padding:8px 0}.row-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.row-title{font-weight:600}.small{font-size:1rem}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-toggle{flex:140px;margin-top:6px}.row-actions .row-toggle{margin-top:0}.retry{margin-top:12px}select{width:100%;min-height:48px;font:inherit;border:1px solid var(--c-secondary-border);background:var(--c-card);color:var(--c-text);border-radius:14px;margin-bottom:8px;padding:0 12px}.toast{left:16px;right:16px;bottom:calc(var(--tabbar-h) + 12px);z-index:10;position:fixed}.toast .banner{box-shadow:0 2px 12px #0003}.items{margin:0;padding:0;list-style:none}.item{border-top:.5px solid var(--c-border);padding:6px 0}.item-main{align-items:center;gap:8px;min-height:48px;display:flex}.item-text{overflow-wrap:anywhere;flex:1;min-width:0}.item-name{font-weight:600}.item.bought .item-name{color:var(--c-hint);text-decoration:line-through}.item-check-hit{flex:none;justify-content:center;align-items:center;min-width:48px;min-height:48px;display:flex}.item-check{width:28px;height:28px;accent-color:var(--c-primary);margin:0}.badge{background:var(--c-warn-bg);color:var(--c-warn-text);border-radius:10px;margin-left:8px;padding:2px 10px;font-size:1rem;font-weight:400;display:inline-block}.menu-btn{color:var(--c-text);background:0 0;border-color:#0000;flex:none;font-size:1.4rem}.item-menu{gap:8px;padding:0 0 8px;display:flex}.item-menu button{flex:1}.admin-close{margin-bottom:8px}.admin-close button{width:100%}.queue{margin:0 0 12px;padding:0;list-style:none}.queue-row{border-top:.5px solid var(--c-border);align-items:center;gap:10px;min-height:52px;display:flex}.queue-no{background:var(--c-chip-bg);width:32px;height:32px;color:var(--c-chip-text);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:flex}.queue-row:first-child .queue-no{background:var(--c-primary);color:var(--c-on-primary)}.queue-name{overflow-wrap:anywhere;flex-wrap:wrap;flex:1;align-items:center;gap:4px 8px;min-width:0;font-weight:600;display:flex}.queue-head{background:var(--c-chip-bg);color:var(--c-accent);border-radius:10px;padding:2px 10px;font-size:1rem;font-weight:600}.queue-by{font-weight:400}.queue-remove{flex:none}.queue-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pick-list{flex-direction:column;gap:8px;margin:8px 0 12px;display:flex}.pick-list button{text-align:left;width:100%}.pick-radio{border:1px solid var(--c-secondary-border);min-height:52px;color:var(--c-text);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:0 14px;display:flex}.pick-radio.on{border:2px solid var(--c-primary);font-weight:600}.pick-radio input{width:24px;height:24px;accent-color:var(--c-primary);margin:0}.history-link{align-items:center;min-height:48px;margin-bottom:72px;display:flex}.add-bar{left:0;right:0;bottom:var(--tabbar-h);background:var(--c-bg);z-index:5;padding:8px 16px;position:fixed}.sheet-backdrop{z-index:20;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--c-card);width:100%;max-height:90vh;padding:8px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;overflow-y:auto}.field{color:var(--c-text-2);flex-direction:column;gap:4px;margin:12px 0;display:flex}.field input{min-height:48px;font:inherit;border:1px solid var(--c-secondary-border);background:var(--c-card);color:var(--c-text);border-radius:14px;padding:0 12px}.sheet-actions{gap:8px;display:flex}.sheet-actions button{flex:1}.sheet-actions.stack{flex-direction:column-reverse}.section-title{color:var(--c-text-2);margin:20px 0 10px;font-size:1.1rem}.act-card{color:var(--c-text);padding-top:12px;text-decoration:none;display:block}.act-title{overflow-wrap:anywhere;margin-bottom:4px;font-size:1.1rem;font-weight:600}.act-mine{color:var(--c-accent);font-weight:600}.act-desc{white-space:pre-wrap;overflow-wrap:anywhere}.roster{align-items:center;gap:4px;min-height:48px;display:flex}.btn-link{background:var(--c-primary);min-height:48px;color:var(--c-on-primary);border-radius:14px;justify-content:center;align-items:center;text-decoration:none;display:flex}.btn-link.full{width:100%}.add-bar-spacer{height:72px}.field textarea{font:inherit;resize:vertical;border:1px solid var(--c-secondary-border);background:var(--c-card);color:var(--c-text);border-radius:14px;padding:12px}.more{margin:8px 0 16px}.more summary{cursor:pointer;min-height:48px;color:var(--c-accent);align-items:center;display:flex}.tz-banner{padding:12px 16px 0}.tz-banner-actions{gap:8px;margin-top:8px;display:flex}.tz-banner-actions button{flex:1}.greet{padding:4px 4px 14px}.hero-title{margin:8px 0 4px;font-size:1.9rem;line-height:1.25}.hero-date{color:var(--c-text-2)}.hero-card{padding:4px 16px 8px}.meal{border-bottom:.5px solid var(--c-border);padding:14px 0}.meal-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.meal-name{font-size:1.2rem;font-weight:600}.meal-count{color:var(--c-text-2);font-size:1.2rem;font-weight:600}.big-btn{width:100%;min-height:56px;font-size:1.25rem;font-weight:600}.guest-row{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.hint{color:var(--c-hint);margin-top:8px;font-size:1rem}.hero-meal{border-bottom:.5px solid var(--c-border)}.hero-meal .meal{border-bottom:0;padding-bottom:10px}.hero-roles{padding:0 0 14px}.meal-deadline{color:var(--c-hint);margin-left:8px;font-size:1rem;font-weight:400}.role-btns{grid-template-columns:1fr 1fr;gap:10px;display:grid}.role-btns button{padding:0 8px;font-size:1.2rem;font-weight:500}.roster-line{color:var(--c-text-2);flex-wrap:wrap;gap:6px 16px;margin-top:10px;display:flex}.roster-item{align-items:center;gap:6px;min-width:0;display:inline-flex}.roster-names{background:var(--c-chip-bg);color:var(--c-chip-text);overflow-wrap:anywhere;border-radius:10px;padding:2px 10px}.warn-chip{background:var(--c-warn-bg);color:var(--c-warn-text);border-radius:10px;padding:2px 10px}.more-link{border-top:.5px solid var(--c-border);justify-content:center;align-items:center;min-height:48px;font-size:1rem;text-decoration:none;display:flex}.signup-meal{border-bottom:.5px solid var(--c-border);padding-bottom:14px}.signup-meal .meal{border-bottom:0;padding-bottom:12px}.hero-head{align-items:center;gap:8px;margin-top:4px;display:flex}.hero-head-text{flex:1;min-width:0}.hero-head .hero-title{white-space:pre-line;font-size:1.5rem}.study-card{background:var(--c-card);border:.5px solid var(--c-border);border-radius:14px;flex:none;margin-left:auto;padding:8px 10px}.study-card-title{white-space:nowrap;margin-bottom:6px;font-weight:600}.study-card-row{align-items:center;gap:6px;display:flex}.study-join{padding:0 10px;font-weight:600}.study-count{color:var(--c-text-2);white-space:nowrap}.date-strip{scroll-snap-type:x proximity;scrollbar-width:none;gap:8px;margin:12px -20px 4px;padding:2px 20px 6px;scroll-padding-inline:20px;display:flex;overflow-x:auto}.date-strip::-webkit-scrollbar{display:none}.date-chip{scroll-snap-align:start;background:var(--c-card);min-width:64px;min-height:64px;color:var(--c-text);border:.5px solid var(--c-border);flex-direction:column;flex:none;justify-content:center;align-items:center;gap:1px;padding:6px 8px;display:flex}.date-chip.on{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary)}.date-chip-day{font-weight:600}.date-chip-date{color:var(--c-text-2);font-size:1rem}.date-chip.on .date-chip-date{color:var(--c-on-primary)}.date-dot{background:var(--c-accent);border-radius:50%;width:6px;height:6px}.date-chip.on .date-dot{background:var(--c-on-primary)}.date-dot.none{visibility:hidden}
