:root{--green: #6f9a5b;--green-dark: #4f7a40;--green-soft: #e7f1df;--coral: #e98f74;--coral-soft: #fde9e2;--cream: #fff8ee;--brown: #5b4636;--brown-soft: #8c7766;--line: #eadfce;--white: #ffffff;--danger: #c2543a;--radius: 18px;--shadow: 0 2px 10px rgba(91, 70, 54, .08);--font: "Hiragino Maru Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", "Meiryo", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--cream);color:var(--brown);font-family:var(--font);font-size:16px;line-height:1.7;-webkit-text-size-adjust:100%}a{color:var(--green-dark)}h1,h2,h3{margin:0;line-height:1.4}.h2{font-size:1.25rem;margin-bottom:.5rem}.h3{font-size:1.05rem;margin:.25rem 0 .5rem}.small{font-size:.875rem}.muted{color:var(--brown-soft)}.center{text-align:center}.pre{white-space:pre-wrap;word-break:break-word;margin:.25rem 0}.mono{font-family:ui-monospace,Menlo,monospace;word-break:break-all}.grow{flex:1;min-width:0}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;background:#fff8eef2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:.5rem 1rem;border-bottom:1px solid var(--line);padding-top:max(.5rem,env(safe-area-inset-top))}.content{flex:1;width:100%;max-width:600px;margin:0 auto;padding:1rem 1rem calc(88px + env(safe-area-inset-bottom))}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:space-around;background:var(--white);border-top:1px solid var(--line);padding:.35rem 0 calc(.35rem + env(safe-area-inset-bottom))}.tab{display:flex;flex-direction:column;align-items:center;gap:0;font-size:.7rem;color:var(--brown-soft);text-decoration:none;padding:.2rem .5rem;border-radius:12px;min-width:60px}.tab-icon{font-size:1.35rem;line-height:1.3}.tab.active{color:var(--green-dark);background:var(--green-soft);font-weight:700}.logo{display:flex;align-items:center;gap:.5rem;justify-content:center}.logo.small{justify-content:flex-start}.logo-mark{width:56px;height:56px}.logo.small .logo-mark{width:32px;height:32px}.logo-text{font-size:1.6rem;font-weight:700;color:var(--green-dark);letter-spacing:.03em}.logo.small .logo-text{font-size:1.15rem}.page{display:flex;flex-direction:column;gap:.9rem}.page.narrow{max-width:600px;margin:0 auto;padding:1rem}.page-header{display:flex;align-items:center;gap:.5rem}.page-header h1{font-size:1.3rem;flex:1}.back{font-size:2rem;line-height:1;text-decoration:none;color:var(--brown-soft);padding:0 .4rem 0 0}.greeting{font-size:1.15rem;font-weight:700;margin:0}section{display:flex;flex-direction:column;gap:.4rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.section-head a{font-size:.85rem}.card{background:var(--white);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);border:1px solid var(--line)}.card.soft{background:var(--coral-soft);border-color:transparent;box-shadow:none}.card ul{padding-left:1.2rem;margin:.25rem 0}.meta{font-size:.8rem;color:var(--brown-soft);display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.note{background:var(--green-soft);border-radius:14px;padding:.7rem .9rem;font-size:.9rem;margin:0}.empty{text-align:center;color:var(--brown-soft);padding:2rem 1rem;margin:0}.loading{text-align:center;color:var(--brown-soft);padding:1rem}.error-text{color:var(--danger);background:#fdecea;border-radius:10px;padding:.5rem .75rem;margin:0;font-size:.9rem}.badge{display:inline-block;font-size:.72rem;padding:.05rem .5rem;border-radius:999px;background:var(--coral);color:var(--white);font-weight:700;margin-left:.25rem;vertical-align:middle}.badge.soft{background:var(--green-soft);color:var(--green-dark);margin-left:0}.badge.warn{background:#f6d58a;color:#6a4b00}.badge.ok{background:var(--green)}.quote{border-left:4px solid var(--line);padding:.4rem .7rem;background:var(--cream);border-radius:6px;margin:.4rem 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;font:inherit;font-weight:700;border:1.5px solid var(--green);background:var(--white);color:var(--green-dark);border-radius:999px;padding:.6rem 1.2rem;min-height:44px;cursor:pointer;text-decoration:none}.btn.primary{background:var(--green);color:var(--white)}.btn.primary:active{background:var(--green-dark)}.btn.ghost{border-color:transparent;background:transparent;color:var(--brown-soft)}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--white)}.btn.small{padding:.3rem .85rem;min-height:34px;font-size:.85rem}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.link-btn{background:none;border:none;color:var(--brown-soft);text-decoration:underline;cursor:pointer;font:inherit;padding:.25rem}.link-btn.danger{color:var(--danger)}.center-block{display:block;margin:0 auto}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem}.form{display:flex;flex-direction:column;gap:.85rem}.field{display:flex;flex-direction:column;gap:.25rem}.field-label{font-weight:700;font-size:.9rem}.field-hint{font-size:.78rem;color:var(--brown-soft)}input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;font-size:16px;width:100%;border:1.5px solid var(--line);border-radius:12px;padding:.6rem .75rem;background:var(--white);color:var(--brown)}input:focus,select:focus,textarea:focus{outline:3px solid var(--green-soft);border-color:var(--green)}.textarea-wrap{position:relative}.counter{position:absolute;right:.6rem;bottom:.3rem;font-size:.7rem;color:var(--brown-soft)}.check{display:flex;align-items:flex-start;gap:.5rem;font-size:.9rem;cursor:pointer}.check input{width:20px;height:20px;margin-top:.2rem;accent-color:var(--green)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.search{margin:0}.filters{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.filters select,.filters .search{flex:1;min-width:140px}.inline-form{display:flex;gap:.5rem;margin-top:.5rem}.segmented{display:flex;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px}.segmented button{flex:1;border:none;background:transparent;font:inherit;font-size:.9rem;padding:.45rem;border-radius:999px;color:var(--brown-soft);cursor:pointer}.segmented button.on{background:var(--green);color:var(--white);font-weight:700}.chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.2rem;flex-wrap:wrap}.chip{border:1.5px solid var(--line);background:var(--white);color:var(--brown);border-radius:999px;padding:.25rem .8rem;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}.chip.on{background:var(--green-soft);border-color:var(--green);color:var(--green-dark);font-weight:700}.theme-list{display:flex;flex-direction:column;gap:.5rem}.theme{display:flex;flex-direction:column;border:1.5px solid var(--line);border-radius:14px;padding:.6rem .8rem;cursor:pointer;position:relative}.theme input{position:absolute;opacity:0}.theme.on{border-color:var(--green);background:var(--green-soft)}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.menu-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;text-align:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem .3rem;text-decoration:none;color:var(--brown);font-size:.8rem;font-weight:700;box-shadow:var(--shadow);min-height:92px}.menu-icon{font-size:1.8rem;line-height:1.2}.count{position:absolute;top:6px;right:8px;background:var(--coral);color:var(--white);border-radius:999px;font-size:.75rem;padding:0 .45rem}.list-row{display:flex;align-items:center;gap:.5rem;padding:.55rem .2rem;border-bottom:1px dashed var(--line);text-decoration:none;color:var(--brown)}.list-row:last-child{border-bottom:none}.admin-banner{display:block;text-align:center;background:var(--brown);color:var(--white);border-radius:14px;padding:.7rem;text-decoration:none;font-weight:700}.room-link{display:flex;flex-direction:column;gap:.2rem;text-decoration:none;color:var(--brown)}.welcome{max-width:460px;margin:0 auto;padding:1.5rem 1rem 2rem;display:flex;flex-direction:column;gap:1rem}.hero{text-align:center;padding:1rem 0 .5rem}.catch{font-size:1.35rem;font-weight:700;color:var(--brown);margin:.75rem 0 .25rem}.sub{color:var(--brown-soft);margin:0;font-size:.9rem}.welcome-links{display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:.9rem}.code-box{font-family:ui-monospace,Menlo,monospace;font-size:1.25rem;font-weight:700;letter-spacing:.05em;text-align:center;background:var(--cream);border:2px dashed var(--coral);border-radius:14px;padding:1rem .5rem;word-break:break-all}.warn-list{padding-left:1.2rem;font-size:.9rem}.qr{width:200px;height:200px;align-self:center;background:#fff}.turnstile{min-height:65px}.setup-needed{padding:2rem}.moods{display:flex;gap:.5rem}.mood{font-size:1.6rem;background:var(--white);border:2px solid var(--line);border-radius:50%;width:52px;height:52px;cursor:pointer}.mood.on{border-color:var(--coral);background:var(--coral-soft)}.growth{background:var(--green-soft);border-radius:10px;padding:.4rem .7rem;margin:.3rem 0}.talk-page{min-height:calc(100dvh - 180px)}.messages{display:flex;flex-direction:column;gap:.7rem;flex:1;padding-bottom:4.5rem}.msg{display:flex;flex-direction:column;align-items:flex-start;max-width:85%}.msg.mine{align-self:flex-end;align-items:flex-end}.msg-name{font-size:.78rem;color:var(--brown-soft);margin-left:.4rem}.bubble{background:var(--white);border:1px solid var(--line);border-radius:18px 18px 18px 4px;padding:.5rem .85rem;margin:0}.msg.mine .bubble{background:var(--green-soft);border-color:transparent;border-radius:18px 18px 4px}.msg-foot{display:flex;gap:.4rem;align-items:center;font-size:.7rem;color:var(--brown-soft)}.hidden-msg{opacity:.55}.composer{position:fixed;left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom));background:var(--cream);border-top:1px solid var(--line);display:flex;gap:.5rem;padding:.5rem 1rem;max-width:600px;margin:0 auto}.composer textarea{resize:none;min-height:44px;max-height:120px}.danger-zone{border-color:var(--danger)}.toasts{position:fixed;top:calc(.75rem + env(safe-area-inset-top));left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.4rem;z-index:100;pointer-events:none}.toast{background:var(--brown);color:var(--white);border-radius:12px;padding:.6rem 1rem;font-size:.9rem;max-width:90%;box-shadow:var(--shadow)}.toast.error{background:var(--danger)}@media(min-width:600px){.menu-grid{grid-template-columns:repeat(4,1fr)}}
