:root{--bg: #fff9f3;--surface: #ffffff;--ink: #2b2320;--muted: #8a7f76;--hairline: #ede4da;--coral: #ff6b4a;--teal: #14b8a6;--amber: #f59e0b;--error: #e5484d;--r-sm: 8px;--r-md: 12px;--r-lg: 20px;--sp: 8px;--font-display: "Fraunces", Georgia, serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #1e1b1a;--surface: #2a2624;--ink: #f5efe9;--muted: #a89c92;--hairline: #3a3431}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}#root{min-height:100%}.app{max-width:640px;margin:0 auto;padding:16px 16px 96px}h1,h2,.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.brand{font-family:var(--font-display);font-size:1.5rem}.switcher{display:flex;align-items:center;gap:8px}select,input,button{font-family:var(--font-body);font-size:1rem}select{border:1px solid var(--hairline);background:var(--surface);color:var(--ink);border-radius:var(--r-sm);padding:8px 10px}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:16px;margin-bottom:16px}.item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--hairline);margin-bottom:10px;transition:background .32s ease,opacity .32s ease}.item.done{background:color-mix(in srgb,var(--teal) 8%,var(--surface));border-color:color-mix(in srgb,var(--teal) 30%,var(--hairline))}.item .body{flex:1;min-width:0}.item .title{font-weight:600}.item.done .title{color:var(--muted);text-decoration:line-through}.item .meta{font-size:.8rem;color:var(--muted);margin-top:2px}.item .meta .doneby{color:var(--teal);font-weight:600}.item .meta .mismatch{color:var(--amber);font-weight:600}.item .meta .readd{color:var(--muted)}.del{width:32px;height:32px;flex:none;border-radius:9999px;cursor:pointer;border:none;background:transparent;color:var(--muted);font-size:1.4rem;line-height:1}.del:hover{color:var(--error);background:color-mix(in srgb,var(--error) 10%,transparent)}.suggests{margin-top:12px;border-top:1px solid var(--hairline);padding-top:10px}.suggesthdr{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.suggest{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;color:var(--ink);padding:8px 6px;border-radius:var(--r-sm);font-size:.95rem}.suggest:hover{background:color-mix(in srgb,var(--teal) 10%,transparent)}.suggest .ret{color:var(--teal);font-weight:700}.avatar{width:32px;height:32px;border-radius:9999px;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.85rem}.check{width:44px;height:44px;flex:none;border-radius:9999px;cursor:pointer;border:2px solid var(--hairline);background:var(--surface);color:var(--muted);font-size:1.2rem;display:grid;place-items:center}.check.on{background:var(--teal);border-color:var(--teal);color:#fff}.btn{border:none;border-radius:9999px;padding:12px 18px;font-weight:600;cursor:pointer;background:var(--coral);color:#fff}.btn.ghost{background:transparent;color:var(--coral);border:1px solid var(--coral)}.btn:disabled{opacity:.5;cursor:default}.fab{position:fixed;left:50%;transform:translate(-50%);bottom:20px;box-shadow:0 6px 20px #00000026}.addrow{display:flex;gap:8px;margin-top:8px}.addrow input{flex:1;border:1px solid var(--hairline);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface);color:var(--ink)}.empty{text-align:center;color:var(--muted);padding:40px 16px}.empty .display{font-size:1.4rem;color:var(--ink);margin-bottom:6px}.fairness .bar{display:flex;height:16px;border-radius:9999px;overflow:hidden;background:var(--hairline);margin:10px 0}.fairness .seg{height:100%}.fairness .total{font-family:var(--font-display);font-size:1.5rem}.fairness .legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;color:var(--muted)}.fairness .legend .dot{width:10px;height:10px;border-radius:9999px;display:inline-block;margin-right:5px}.login{max-width:360px;margin:12vh auto;text-align:center}.login h1{font-size:2rem;margin-bottom:4px}.login .tag{color:var(--muted);margin-bottom:24px}.login form{display:flex;flex-direction:column;gap:10px;text-align:left}.login input{border:1px solid var(--hairline);border-radius:var(--r-sm);padding:12px;background:var(--surface);color:var(--ink)}.err{color:var(--error);font-size:.9rem;margin-top:8px}.tabs{display:flex;gap:8px;overflow-x:auto;margin-bottom:12px}.tab{padding:8px 14px;border-radius:9999px;border:1px solid var(--hairline);background:var(--surface);cursor:pointer;white-space:nowrap}.tab.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.addtab{border:1px dashed var(--coral);background:transparent;color:var(--coral);cursor:pointer;font-weight:600}.createrow{display:flex;gap:8px;align-items:center}.createrow input{flex:1;border:1px solid var(--hairline);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface);color:var(--ink)}.muted-line{color:var(--muted);margin-bottom:16px}.cardhead{font-family:var(--font-display);font-size:1.2rem;margin-bottom:12px}.stats{display:flex;gap:20px;flex-wrap:wrap}.stats .stat{font-family:var(--font-display);font-size:1.6rem;color:var(--coral);margin-right:4px}.owners{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.ownerchip{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted)}.avatar.sm{width:22px;height:22px;font-size:.7rem}.appgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;margin-top:20px}.appcard{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:18px 12px;text-align:center;cursor:pointer;font-weight:600}.appcard .appicon{font-size:1.8rem;margin-bottom:6px}.appcard.soon{color:var(--muted);font-weight:400;cursor:default;border-style:dashed}.segmented{display:flex;gap:4px;background:var(--hairline);border-radius:9999px;padding:4px;margin-bottom:20px}.segmented button{flex:1;border:none;background:transparent;color:var(--muted);padding:8px;border-radius:9999px;cursor:pointer;font-weight:600}.segmented button.on{background:var(--surface);color:var(--ink)}.joincode{font-family:var(--font-display);font-size:2rem;letter-spacing:.2em;text-align:center;padding:16px;border:2px dashed var(--coral);border-radius:var(--r-md);color:var(--coral);cursor:pointer;-webkit-user-select:all;user-select:all}.rosterrow{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--hairline)}.rosterrow:last-of-type{border-bottom:none}.rosterrow .body{flex:1}.tagpill{font-size:.72rem;color:var(--muted);background:var(--hairline);padding:3px 10px;border-radius:9999px}.columns{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:720px){.columns{grid-template-columns:repeat(3,1fr)}}.column{background:color-mix(in srgb,var(--hairline) 40%,transparent);border-radius:var(--r-md);padding:10px}.colhdr{font-family:var(--font-display);font-size:1rem;margin-bottom:10px;display:flex;align-items:center;gap:8px}.colcount{font-family:var(--font-body);font-size:.75rem;color:var(--muted);background:var(--surface);border-radius:9999px;padding:1px 8px}.carditem{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:10px;margin-bottom:8px}.cardtop{display:flex;align-items:start;justify-content:space-between;gap:6px}.cardtitle{font-weight:600}.cardfoot{display:flex;align-items:center;gap:8px;margin-top:8px}.ownersel{flex:1;font-size:.8rem;padding:4px 6px}.movebtns{display:flex;gap:4px}.movebtn{border:1px solid var(--hairline);background:var(--surface);border-radius:var(--r-sm);cursor:pointer;padding:2px 8px;color:var(--ink)}.movebtn:hover{border-color:var(--coral);color:var(--coral)}@media(prefers-reduced-motion:reduce){.item{transition:none}}
