:root{--ground:#EAEEEE;--surface:#FFFFFF;--surface-2:#F4F7F7;--surface-3:#E9EFEF;--ink:#13202A;--ink-2:#54666E;--ink-3:#84969C;--line:#DBE3E4;--line-2:#C8D3D4;--accent:#0F5A66;--accent-ink:#FFFFFF;--accent-soft:#DCEBED;--ok:#1C7549;--ok-soft:#DDEFE5;--warn:#96591A;--warn-soft:#F6E9D6;--done:#66777D;--done-soft:#E6EBEC;--danger:#9C3B2E;--shadow:0 1px 2px rgba(19,32,42,.06),0 8px 24px rgba(19,32,42,.08);--font-display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--font-ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,system-ui,sans-serif;--font-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#0B1215;--surface:#141E22;--surface-2:#1A262B;--surface-3:#213036;--ink:#E4ECED;--ink-2:#93A6AD;--ink-3:#6D8189;--line:#243238;--line-2:#2E4048;--accent:#57B6C6;--accent-ink:#052228;--accent-soft:#16333A;--ok:#54BE87;--ok-soft:#13312444;--warn:#D69B52;--warn-soft:#33261444;--done:#83979E;--done-soft:#202C31;--danger:#E0705F;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.4)}}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-ui);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.shell{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(70px + env(safe-area-inset-bottom))}.screen{padding:18px 16px 24px;flex:1 1}.screenhead{display:flex;align-items:center;gap:10px;margin:6px 0 16px}.screenhead h1{font-family:var(--font-display);font-weight:600;font-size:26px;margin:0;letter-spacing:-.01em}.screenhead .mark{color:var(--accent);flex:none}.screenhead .spacer{flex:1 1}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar-inner{max-width:560px;margin:0 auto;display:flex}.tab{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 8px;background:none;border:none;color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.02em;position:relative}.tab.active{color:var(--accent)}.tab svg{width:22px;height:22px}.tab .badge{position:absolute;top:5px;right:calc(50% - 22px);background:var(--warn);color:#fff;border-radius:999px;font-size:10px;font-weight:700;min-width:16px;height:16px;display:grid;place-items:center;padding:0 4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.list{display:flex;flex-direction:column;gap:12px}.itemcard{display:flex;gap:14px;padding:14px;align-items:center}.thumb{width:74px;height:74px;border-radius:12px;background:var(--surface-3);border:1px solid var(--line);flex:none;display:grid;place-items:center;color:var(--ink-3);overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.itemcard .meta{min-width:0}.itemcard h3{margin:0 0 2px;font-size:16.5px;font-weight:650;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.byline{font-size:13.5px;color:var(--ink-2);margin:0 0 6px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;font-size:12px;font-weight:650;padding:3px 10px;letter-spacing:.01em}.pill:before{content:"";width:6px;height:6px;border-radius:99px;background:currentColor}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.done{background:var(--done-soft);color:var(--done)}.seclabel{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:22px 2px 10px;display:flex;justify-content:space-between;align-items:baseline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font-weight:650;font-size:15px;padding:12px 18px;width:100%;transition:opacity .15s}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.quiet{border:none;background:var(--surface-2);color:var(--ink-2)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.mini{width:auto;padding:7px 14px;font-size:13.5px;border-radius:10px}.btnrow{display:flex;gap:10px}.btnrow .btn{flex:1 1}.field{margin-bottom:16px}.field label{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 2px 7px}.field input[type=email],.field input[type=text],.field select,.field textarea{width:100%;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;font-size:16px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field textarea{resize:vertical;min-height:88px}.hint{font-size:13px;color:var(--ink-3);margin:6px 2px 0}.note{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 10px 10px 0;padding:10px 14px;font-size:14px;color:var(--ink-2)}.hero{aspect-ratio:4/3;background:var(--surface-3);display:grid;place-items:center;color:var(--ink-3);position:relative;overflow:hidden}.hero img{width:100%;height:100%;object-fit:cover;display:block}.photostrip{display:flex;gap:8px;padding:10px 14px 0;overflow-x:auto}.photostrip img{width:56px;height:56px;border-radius:9px;object-fit:cover;border:1.5px solid var(--line);flex:none}.detailbody{padding:18px 16px 20px}.detailbody h2{font-family:var(--font-display);font-size:24px;font-weight:600;margin:0 0 8px;letter-spacing:-.01em}.facts{display:grid;grid-template-columns:auto 1fr;grid-gap:6px 16px;gap:6px 16px;margin:14px 0}.facts dt{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);align-self:baseline;padding-top:3px}.facts dd{margin:0;font-size:15px}.q{padding:12px 0;border-top:1px solid var(--line)}.q .qhead{display:flex;align-items:baseline;gap:8px;font-size:13px;color:var(--ink-3)}.q .qbody{margin:4px 0 0;font-size:15px}.q .answer{margin:8px 0 0;padding:9px 12px;background:var(--surface-2);border-radius:10px;font-size:14.5px}.q .answer .who{color:var(--ink-3);font-size:12.5px;display:block;margin-bottom:2px}.qprivate{font-size:11px;font-weight:700;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:2px 7px;letter-spacing:.03em}.qdelete{background:none;border:none;font-size:16px;padding:2px 6px;margin-left:auto}.empty,.qdelete{color:var(--ink-3)}.empty{text-align:center;padding:40px 20px;font-size:15px}.error{color:var(--danger);font-size:14px;margin:8px 0}.center-card{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.center-card .card{max-width:420px;width:100%;padding:32px 26px;text-align:center}.lockup{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:18px}.lockup svg{width:46px;height:46px;color:var(--accent)}.lockup .word{font-family:var(--font-display);font-size:23px;font-weight:600;letter-spacing:-.018em;color:var(--ink)}.checkrow{display:flex;align-items:center;gap:9px;font-size:14.5px;color:var(--ink-2)}.checkrow input{width:17px;height:17px;accent-color:var(--accent)}.memberrow{display:flex;align-items:center;gap:12px;padding:13px 14px}.avatar{width:40px;height:40px;border-radius:999px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:14px;flex:none}.memberrow .who{min-width:0;flex:1 1}.memberrow .who b{display:block;font-size:15px}.memberrow .who span{font-size:13px;color:var(--ink-3)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:50;background:var(--ink);color:var(--ground);border-radius:12px;padding:11px 18px;font-size:14.5px;font-weight:600;box-shadow:var(--shadow);animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}