:root{--ink:#111;--dim:#777;--faint:#aaa;--line:#e8e8e8;--bg:#fff;--soft:#f7f7f7;--sans:"Helvetica Neue", Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5}button{font-family:var(--sans);cursor:pointer;color:inherit;background:0 0;border:none}input,textarea,select{font-family:var(--sans);color:var(--ink);font-size:14px}a{color:inherit}.app{max-width:1100px;margin:0 auto;padding:0 20px 120px}.topbar{justify-content:space-between;align-items:flex-start;padding:28px 0 8px;display:flex}.logo-col{flex-direction:column;align-items:flex-start;display:flex}.logo-col img{object-fit:contain;object-position:left center;width:auto;max-width:240px;height:30px}.pron{letter-spacing:.22em;color:var(--dim);text-transform:uppercase;margin-top:10px;margin-bottom:6px;font-size:10px;font-weight:300}.top-actions{align-items:center;gap:8px;padding-top:4px;display:flex}.icon-btn{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:6px 8px;font-size:11px}.icon-btn:hover{color:var(--ink);border-color:var(--ink)}.nav{border-bottom:1px solid var(--line);gap:2px;margin-top:18px;display:flex;overflow-x:auto}.nav button{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:11px}.nav button.active{color:var(--ink);border-bottom-color:var(--ink)}.page-heading{letter-spacing:.06em;text-transform:uppercase;font-size:15px;font-weight:400;line-height:1.4}.section-heading{letter-spacing:.1em;text-transform:uppercase;margin:34px 0 14px;font-size:12px;font-weight:400}.kicker{letter-spacing:.1em;color:var(--dim);text-transform:uppercase;font-size:11px;font-weight:300}.small{color:var(--dim);font-size:12px}.dim{color:var(--dim)}.hero{padding:34px 0 6px}.hero .kicker{margin-bottom:12px}.hero h1{letter-spacing:.04em;text-transform:uppercase;font-size:26px;font-weight:400;line-height:1.25}.footer-line{border-top:1px solid var(--line);color:var(--dim);letter-spacing:.04em;margin-top:64px;padding-top:20px;font-size:12px}.btn{letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:999px;padding:9px 18px;font-size:11px;display:inline-block}.btn.ghost{color:var(--ink);background:#fff}.btn.small{padding:6px 12px;font-size:10px}.btn:disabled{opacity:.4;cursor:default}.chip{letter-spacing:.06em;border:1px solid var(--line);color:var(--dim);border-radius:999px;padding:6px 12px;font-size:11px}.chip.on{border-color:var(--ink);color:var(--ink);background:var(--soft)}.chip-row{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.input,.textarea,.select{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;padding:10px 12px}.input:focus,.textarea:focus,.select:focus{border-color:var(--ink)}.textarea{resize:vertical;min-height:80px}.field{margin-bottom:14px}.field label{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:6px;font-size:11px;display:block}.search{max-width:480px;margin:20px 0 4px}.error{color:#b3261e;margin:10px 0;font-size:12px}.notice{border:1px solid var(--line);background:var(--soft);color:var(--dim);border-radius:10px;margin:18px 0;padding:14px 16px;font-size:12px;line-height:1.6}.notice b{color:var(--ink);font-weight:500}.mosaic{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:8px;display:grid}.card{text-align:left}.card img{aspect-ratio:4/3;object-fit:cover;border-radius:4px;width:100%;display:block}.card .title-400{letter-spacing:.04em;text-transform:uppercase;margin-top:10px;font-size:13px;font-weight:400;line-height:1.35}.card .meta{color:var(--dim);margin-top:2px;font-size:12px}.empty{border:1px dashed var(--line);text-align:center;color:var(--dim);border-radius:10px;padding:28px 20px;font-size:13px;line-height:1.6}.empty b{color:var(--ink);font-weight:500}.person-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.avatar{background:var(--ink);color:#fff;letter-spacing:.08em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:13px;display:flex}.avatar.big{width:72px;height:72px;font-size:20px}.person-row .grow{flex:1;min-width:0}.person-row .name{letter-spacing:.02em;font-size:13px;font-weight:500}.person-row .sub{color:var(--dim);font-size:12px}.sheet-wrap{z-index:50;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:#fff;border-radius:16px 16px 0 0;width:100%;max-width:640px;max-height:88vh;padding:22px 22px 32px;overflow-y:auto}.sheet h2{letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;font-size:14px;font-weight:400}.sheet-head{justify-content:space-between;align-items:center;display:flex}.close{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.photo-pick{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.photo-pick img{aspect-ratio:1;object-fit:cover;cursor:pointer;border:2px solid #0000;border-radius:4px;width:100%}.photo-pick img.on{border-color:var(--ink)}.week-grid{grid-template-columns:repeat(7,1fr);gap:10px;margin-top:14px;display:grid}.week-day{border:1px solid var(--line);border-radius:8px;min-height:110px;padding:10px}.week-day h4{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:8px;font-size:11px;font-weight:400}.week-day .plan{margin-bottom:6px;font-size:12px;line-height:1.4}@media (width<=760px){.week-grid{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:20px}}.grocery-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;display:flex}.grocery-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink)}.grocery-row .done{color:var(--faint);text-decoration:line-through}.tabs{flex-wrap:wrap;gap:6px;margin:14px 0;display:flex}.tabs button{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:11px}.tabs button.on{color:var(--ink);border-color:var(--ink)}.auth{max-width:420px;margin:60px auto 0}.auth img{width:auto;height:34px}.auth h1{letter-spacing:.06em;text-transform:uppercase;margin:22px 0 6px;font-size:16px;font-weight:400}.loading{flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:100vh;display:flex}.loading img{width:auto;height:40px}
