:root{--bg: #17141d;--surface: #211d2a;--surface-2: #2a2536;--line: #3a3447;--text: #f2eee8;--muted: #a8a0b4;--accent: #f2a95b;--accent-ink: #2a1a05;--good: #7fd6a0;--maybe: #f0cf6a;--danger: #ff8a80;--radius: 16px;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,system-ui,sans-serif;line-height:1.6;padding-bottom:env(safe-area-inset-bottom)}h1,h2,h3{margin:0;line-height:1.3}h1{font-size:1.5rem}h2{font-size:1.1rem}h3{font-size:.95rem;color:var(--muted);font-weight:600}p{margin:0}a{color:var(--accent)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--surface-2);padding:.1em .4em;border-radius:6px}.page{max-width:640px;margin:0 auto;padding:20px 16px 48px;display:flex;flex-direction:column;gap:16px}.page.narrow{padding-top:40px}.stack{display:flex;flex-direction:column;gap:14px}.stack.tight{gap:8px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.center{text-align:center}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.panel{background:var(--surface-2);border-radius:12px;padding:14px;border:1px solid var(--line)}details.panel summary{cursor:pointer;font-weight:600;margin-bottom:0}details.panel[open] summary{margin-bottom:12px}.hint{color:var(--muted);font-size:.82rem}.error{color:var(--danger);font-size:.9rem}.empty{color:var(--muted);text-align:center;padding:24px 8px}.field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}input[type=text],input[type=date],input:not([type]),input[type=search],input[inputmode]{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:46px;width:100%;font-size:16px}input:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{font:inherit;font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:12px 20px;min-height:46px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.small{padding:6px 14px;min-height:36px;font-size:.85rem}.btn.danger,.link.danger{color:var(--danger)}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed}.link{font:inherit;font-size:.85rem;background:none;border:0;padding:4px 0;color:var(--accent);text-decoration:underline;cursor:pointer;text-align:left}.inline-form{display:flex;gap:8px}.inline-form input{min-width:0}.badge{background:var(--accent);color:var(--accent-ink);font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:999px;white-space:nowrap}.badge.soft{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);font-weight:500}.hero{text-align:center;display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.hero-emoji{font-size:3rem}.lead{color:var(--muted)}.gate{position:fixed;inset:0;background:#0a080ed1;display:flex;align-items:flex-end;justify-content:center;z-index:20;padding:16px}@media (min-width: 560px){.gate{align-items:center}}.gate-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;width:100%;max-width:420px;max-height:90vh;overflow:auto}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:8px 16px;cursor:pointer}.chip.big{min-height:44px}.chip:hover{border-color:var(--accent)}.event-head{display:flex;flex-direction:column;gap:6px}.summary{color:var(--muted)}.summary.set{color:var(--accent);font-weight:700;font-size:1.05rem}.who-line{font-size:.85rem;color:var(--muted)}.url{word-break:break-all;display:block;padding:8px 10px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;position:sticky;top:8px;z-index:5}.tabs button{font:inherit;font-weight:600;color:var(--muted);background:none;border:0;border-radius:999px;padding:10px 4px;min-height:44px;cursor:pointer}.tabs button.on{background:var(--accent);color:var(--accent-ink)}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--radius);background:linear-gradient(135deg,#3a2a12,#2b2113);border:1px solid var(--accent)}.banner .big{font-size:1.6rem;font-weight:800;color:var(--accent)}.month{display:flex;flex-direction:column;gap:6px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-head span{text-align:center;font-size:.75rem;color:var(--muted)}.cal-head .sun{color:#ff9e9e}.cal-head .sat{color:#8fb8ff}.cell{font:inherit;color:var(--text);position:relative;aspect-ratio:1 / 1.15;min-height:52px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cell .dnum{align-self:flex-start;font-size:.72rem;color:var(--muted);line-height:1}.cell .mark{font-size:1.25rem;font-weight:800;line-height:1}.cell .tiny{font-size:.6rem;color:var(--muted);line-height:1;white-space:nowrap}.cell.yes{border-color:var(--good);background:#7fd6a01f}.cell.yes .mark{color:var(--good)}.cell.maybe{border-color:var(--maybe);background:#f0cf6a1f}.cell.maybe .mark{color:var(--maybe)}.cell.possible{box-shadow:inset 0 0 0 1px #f0cf6a80}.cell.perfect{box-shadow:inset 0 0 0 2px var(--accent),0 0 12px #f2a95b59}.cell.chosen{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.cell.chosen .dnum,.cell.chosen .tiny,.cell.chosen .mark{color:var(--accent-ink)}.cell.excluded{opacity:.35;background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(255,255,255,.05) 6px 12px);cursor:default}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cand{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--bg);border:1px solid var(--line)}.cand.perfect{border-color:var(--accent)}.cand .date{font-weight:700;min-width:5.2em}.cand .counts{flex:1}.shop{display:flex;flex-direction:column;gap:12px;position:relative}.shop.decided{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.ribbon{color:var(--accent);font-weight:700;font-size:.9rem}.shop-top{display:flex;gap:12px}.thumb{width:88px;height:88px;border-radius:12px;object-fit:cover;background:var(--surface-2);flex:none}.thumb.placeholder{display:flex;align-items:center;justify-content:center;font-size:2.2rem}.shop-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.shop-name{font-weight:700;font-size:1.02rem;color:var(--text);overflow-wrap:anywhere}.host{font-size:.8rem;color:var(--muted);text-decoration:none;overflow-wrap:anywhere}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font:inherit;font-size:.8rem;color:var(--muted);background:none;border:1px solid var(--line);border-radius:999px;padding:5px 12px;min-height:34px;cursor:pointer}.tag.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:700}.tag.budget.on{background:var(--maybe);border-color:var(--maybe)}.shop-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.want{font:inherit;font-weight:700;color:var(--text);background:var(--surface-2);border:1px solid var(--accent);border-radius:999px;padding:10px 18px;min-height:48px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.want:active{transform:scale(.96);background:#3b3045}.want b{color:var(--accent);min-width:1.5em;text-align:center;font-variant-numeric:tabular-nums}.org-actions,.upload{display:flex;gap:8px;flex-wrap:wrap}.upload input[type=text],.upload input:not([type]){flex:1;min-width:160px}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (min-width: 520px){.gallery{grid-template-columns:repeat(3,1fr)}}.shot{margin:0;position:relative;border-radius:12px;overflow:hidden;background:var(--bg)}.shot img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.shot figcaption{position:absolute;inset:auto 0 0;padding:18px 8px 6px;font-size:.75rem;background:linear-gradient(transparent,#000000bf)}.shot-del{position:absolute;top:6px;right:6px;width:30px;height:30px;border-radius:50%;border:0;background:#0009;color:#fff;cursor:pointer}.result{text-align:center;background:linear-gradient(160deg,var(--surface),#2a2030)}.per{font-size:2.6rem;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}.surplus{color:var(--maybe);font-weight:600}.surplus.ok{color:var(--good)}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px}.seg button{font:inherit;color:var(--muted);background:none;border:0;border-radius:999px;min-height:40px;cursor:pointer}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:700}.who{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}.check{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;flex:1}.check.readonly{cursor:default}.check input{width:22px;height:22px;accent-color:var(--accent)}.amount{font-variant-numeric:tabular-nums;color:var(--muted)}.foot{margin-top:8px;padding-top:16px;border-top:1px solid var(--line)}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);background:#f2eee8;color:#1c1824;padding:12px 18px;border-radius:999px;font-size:.9rem;font-weight:600;max-width:calc(100vw - 32px);text-align:center;z-index:30;box-shadow:0 8px 24px #0006}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
