:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f7f7f7;background:#0f0f10;--card:#1b1b1e;--line:#303034;--soft:#aaa;--accent:#f1c84b;--good:#44c777;--bad:#ef6464}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0f0f10}body{display:flex;justify-content:center}.phone{width:100%;max-width:520px;min-height:100dvh;background:#111114;padding:env(safe-area-inset-top) 14px calc(82px + env(safe-area-inset-bottom));overflow-x:hidden}.login{display:flex;flex-direction:column;justify-content:center}.hero{text-align:center;padding:32px 20px}.hero .mark{width:64px;height:64px;margin:auto;border-radius:20px;background:var(--accent);color:#111;display:grid;place-items:center;font-weight:900;font-size:32px}.hero h1{font-size:32px;margin:16px 0 6px}.hero p,.muted{color:var(--soft)}.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px}.panel h1{margin-top:0}.stack{display:grid;gap:14px}.stack.compact{gap:10px}label{display:grid;gap:6px;font-size:13px;color:#c8c8cc}input,select,button{font:inherit}input,select{width:100%;border:1px solid #39393e;background:#111114;color:#fff;border-radius:13px;padding:13px 14px;outline:none}input:focus,select:focus{border-color:var(--accent)}button{border:0;border-radius:13px;padding:12px 15px;background:#2b2b30;color:#fff;font-weight:700}.primary{background:var(--accent);color:#111}.links{display:flex;justify-content:space-between;margin-top:18px;font-size:13px}.links a,a{color:#d8d8dd;text-decoration:none}.error,.success{padding:11px 12px;border-radius:12px;margin:10px 0 16px}.error{background:#442124;color:#ffd6d6}.success{background:#193b28;color:#d7ffe4}.totp-box{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:12px}.totp-box code{font-size:16px;word-break:break-all}.top{min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:8px 2px}.top div{display:grid}.top small{color:var(--soft);font-size:11px}.top b{font-size:18px}.chip{border:1px solid var(--line);padding:8px 11px;border-radius:999px;font-size:12px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-card{width:100%;min-height:130px;background:#141417;border:1px solid var(--line);display:grid;place-items:center;gap:4px}.profile-card span{font-size:38px;color:var(--accent)}.profile-card small{color:var(--soft)}.searchbar{position:relative;display:grid;grid-template-columns:1fr 48px;gap:8px;margin:8px 0 12px}.searchbar button{font-size:24px;background:var(--accent);color:#111}.search-results{position:absolute;z-index:30;top:52px;left:0;right:0;background:#18181c;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 10px 30px #0008}.search-results:empty{display:none}.search-results button{width:100%;border-radius:0;background:#18181c;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;text-align:left}.search-results small{color:var(--soft)}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#17171a;padding:5px;border-radius:14px;position:sticky;top:0;z-index:20}.tabs button{padding:9px 4px;background:transparent;color:var(--soft)}.tabs .active{background:#303034;color:#fff}.tabview{display:none;padding-top:8px}.tabview.active{display:block}.tabview h2{font-size:16px;margin:18px 2px 10px}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.choice{background:var(--card);padding:10px;border-radius:12px;display:grid;grid-template-columns:auto 1fr auto;gap:5px;align-items:start;min-height:72px}.choice .remove-choice{padding:0;width:24px;height:24px;background:transparent;color:#888}.choice b{color:var(--accent)}.suggestions{display:grid;gap:9px}.suggestion{display:grid;grid-template-columns:76px 1fr 42px;gap:11px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:8px}.food-img,.thumb{background:#27272c;object-fit:cover;display:block}.food-img{width:76px;height:64px;border-radius:12px}.suggestion div:nth-child(2){display:grid;gap:4px}.suggestion small,.match small,.history-row small{color:var(--soft);font-size:11px}.suggestion .pick{width:38px;height:38px;padding:0;border-radius:50%;background:var(--accent);color:#111;font-size:22px}.match{display:flex;gap:10px;align-items:center;background:#19191c;border-bottom:1px solid var(--line);padding:11px}.match>span{font-size:22px;color:#ff667b}.match div{display:grid;gap:2px}.swipe-card{height:min(58vh,520px);background:var(--card);border:1px solid var(--line);border-radius:24px;overflow:hidden;text-align:center;touch-action:none;transition:transform .15s}.swipe-image{width:100%;height:75%;background:#222;object-fit:cover;display:block}.swipe-card h1{font-size:25px;margin:14px 8px 3px}.swipe-card small{color:var(--soft)}.swipe-actions{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:7px;margin-top:10px}.swipe-actions .no{background:#3b2225;color:#ffb7bd}.swipe-actions .yes{background:#1f3b2a;color:#a9f4c2}.swipe-actions .fav{background:#4b2330;color:#ffb0c1}.history-row{display:flex;gap:11px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.history-row .thumb{width:54px;height:54px;border-radius:12px}.history-row div:last-child{display:grid;gap:3px}.modal{display:none;position:fixed;z-index:80;inset:0;background:#000a;align-items:flex-end;justify-content:center}.modal.open{display:flex}.modal-card{width:min(520px,100%);background:#1a1a1e;border-radius:22px 22px 0 0;padding:18px 14px calc(18px + env(safe-area-inset-bottom));display:grid;gap:8px}.modal-card h2{margin:0 0 6px}.modal-card .eaten-choice{display:flex;justify-content:space-between;background:#29292e}.modal-card small{color:#aaa}.bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(520px,100%);padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#111114 25%)}.bottom button{width:100%;background:#fff;color:#111}.admin-list{display:grid;gap:8px}.admin-row{display:grid;grid-template-columns:42px 1fr 38px;gap:8px;align-items:center;padding:9px;background:#141417;border-radius:12px}.admin-row .avatar{font-size:23px;text-align:center;color:var(--accent)}.admin-row div{display:grid}.admin-row small{color:var(--soft)}.ghost{background:transparent;color:#999;font-size:20px}.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}hr{border:0;border-top:1px solid var(--line);width:100%}@media(min-width:700px){body{background:#09090a}.phone:not(.app){margin:24px 0;min-height:auto;border:1px solid #242428;border-radius:26px}.app{border-left:1px solid #242428;border-right:1px solid #242428}}
.profile-form{display:grid;gap:7px;align-content:start}.profile-form.locked{padding:7px;background:#18181c;border:1px solid #35353b;border-radius:16px}.profile-form.locked .profile-card{min-height:108px;border:0}.profile-password{padding:10px 11px;font-size:13px;border-radius:11px}.food-photo{background:#27272c url('fallbacks/default.svg') center/cover no-repeat}

/* 0.1.3 mobile-first app shell */
html,body{height:100%}
.phone.app{height:100dvh;min-height:0;max-width:520px;padding:max(6px,env(safe-area-inset-top)) 10px max(6px,env(safe-area-inset-bottom));display:grid;grid-template-rows:48px 44px 42px minmax(0,1fr) 48px;gap:6px;overflow:hidden}
.app .top{min-height:0;height:48px;padding:0 2px}
.app .top b{font-size:16px;line-height:1.1}.app .top small{font-size:10px}
.app .chip{padding:7px 10px;background:#202024}
.app .searchbar{height:44px;margin:0;grid-template-columns:minmax(0,1fr) 44px;gap:6px}
.app .searchbar input{height:44px;padding:9px 12px;background:#fff;color:#101014;border:2px solid #fff;font-weight:700;caret-color:#111}
.app .searchbar input::placeholder{color:#666;opacity:1;font-weight:600}
.app .searchbar input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #000}
.app .searchbar button{height:44px;padding:0;background:var(--accent);color:#111}
.app .search-results{top:48px;background:#fff;color:#111;border-color:#d8d8dc;max-height:min(55dvh,420px);overflow:auto}
.app .search-results button{background:#fff;color:#111;border-color:#e5e5e8;padding:12px}
.app .search-results button:hover,.app .search-results button:focus{background:#f1f1f3}
.app .search-results small{color:#555}.app .search-results .new-dish{background:#fff8dc}
.app .tabs{height:42px;position:static;padding:4px;align-self:stretch}
.app .tabs button{height:34px;padding:5px 3px;font-size:12px}
.app .tabview{padding:0;min-height:0;overflow:hidden}
.app .tabview.active{display:flex;flex-direction:column;min-height:0}
.section-head{min-height:26px;display:flex;align-items:end;justify-content:space-between;padding:2px 2px 4px}.section-head b{font-size:13px}.section-head small{font-size:10px;color:var(--soft)}
.empty-line{margin:4px 2px;font-size:12px}
.today-view{gap:4px}
.today-view .choices{display:flex;gap:5px;min-height:34px;max-height:38px;overflow:hidden}
.today-view .choice{min-width:0;flex:1;height:34px;min-height:0;padding:6px 7px;border-radius:10px;grid-template-columns:18px minmax(0,1fr) 20px;align-items:center;font-size:11px}
.today-view .choice span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-view .choice .remove-choice{width:20px;height:20px;font-size:16px}
.today-view .suggestions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;height:min(31dvh,236px);min-height:168px}
.today-view .suggestion{position:relative;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;padding:0;gap:0;overflow:hidden;border-radius:15px;min-width:0}
.today-view .food-img{width:100%;height:100%;min-height:0;border-radius:0;object-fit:cover}
.today-view .suggestion-copy{position:absolute;left:0;right:0;bottom:0;padding:28px 7px 7px;background:linear-gradient(transparent,#000d);display:grid;gap:1px;pointer-events:none}
.today-view .suggestion-copy b{font-size:12px;color:#fff;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-view .suggestion-copy small{font-size:9px;color:#eee}
.today-view .suggestion .pick{position:absolute;right:6px;top:6px;width:30px;height:30px;font-size:19px;border:2px solid #111;background:var(--accent)}
.today-view .match-head{margin-top:1px}
.today-view .matches{display:grid;gap:3px;min-height:0;overflow:hidden}
.today-view .match{height:39px;min-height:39px;padding:5px 8px;border:1px solid var(--line);border-radius:10px;background:#19191c}.today-view .match>span{font-size:16px}.today-view .match b{font-size:11px}.today-view .match small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78vw}
.app .bottom{position:static;transform:none;width:auto;padding:0;background:none;height:48px}.app .bottom button{height:48px;border-radius:13px}

.swipe-view{gap:6px}
.swipe-guide{height:23px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-size:9px;font-weight:900;letter-spacing:.02em}.swipe-guide span:first-child{color:#ff9da5}.swipe-guide span:last-child{text-align:right;color:#9ee9ba}.swipe-guide b{color:#999;font-size:9px}
.swipe-card{position:relative;flex:1;height:auto;min-height:0;border-radius:18px;display:grid;grid-template-rows:minmax(0,1fr) auto auto;overflow:hidden;transition:transform .12s ease;will-change:transform}
.swipe-image{width:100%;height:100%;min-height:0;object-fit:cover;background:#25252a}
.swipe-info{padding:8px 10px 6px;text-align:left;background:var(--card)}.swipe-card h1{font-size:20px;margin:0 0 1px;line-height:1.1}.swipe-card small{font-size:10px}.image-credit{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.65;margin-top:2px}
.family-likes{padding:6px 10px 8px;text-align:left;border-top:1px solid var(--line);background:#17171a}.family-likes>small{display:block;margin-bottom:4px;color:#aaa}.family-likes>div{display:flex;gap:4px;overflow:hidden}.fan,.nobody{display:inline-flex;align-items:center;gap:3px;max-width:120px;padding:4px 6px;border:1px solid #34343a;border-radius:999px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fan i{font-style:normal}.fan.favorite{border-color:#763247;background:#341c25}.nobody{color:#888}
.swipe-badge{position:absolute;z-index:4;top:16px;padding:7px 9px;border:3px solid;border-radius:8px;font-size:15px;font-weight:1000;letter-spacing:.04em;opacity:0;pointer-events:none;transition:opacity .08s}.swipe-badge.dislike{left:14px;color:#ff7d89;border-color:#ff7d89;transform:rotate(-7deg)}.swipe-badge.like{right:14px;color:#67e69a;border-color:#67e69a;transform:rotate(7deg)}.swipe-card.drag-left .swipe-badge.dislike,.swipe-card.drag-right .swipe-badge.like{opacity:1}
.swipe-actions{height:58px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin:0}.swipe-actions button{height:58px;padding:5px 4px;border-radius:13px;display:grid;place-items:center;align-content:center;gap:1px}.swipe-actions strong{font-size:20px;line-height:1}.swipe-actions span{font-size:9px;font-weight:800}.swipe-actions .no{background:#482126;color:#ffb6bc}.swipe-actions .fav{background:#4b2633;color:#ffc0d0}.swipe-actions .yes{background:#1d472e;color:#b1f2c9}
.past-view{overflow:hidden}.past-view #history{overflow:auto;min-height:0;padding-right:2px}.past-view .history-row{padding:6px 0}.past-view .history-row .thumb{width:45px;height:45px}

@media(max-height:720px){
  .phone.app{grid-template-rows:42px 40px 38px minmax(0,1fr) 44px;gap:4px;padding-top:max(4px,env(safe-area-inset-top));padding-bottom:max(4px,env(safe-area-inset-bottom))}
  .app .top{height:42px}.app .searchbar,.app .searchbar input,.app .searchbar button{height:40px}.app .tabs{height:38px}.app .tabs button{height:30px}
  .section-head{min-height:22px;padding-bottom:2px}.today-view .choices{height:31px;min-height:31px}.today-view .choice{height:31px}.today-view .suggestions{height:min(28dvh,190px);min-height:140px}.today-view .match{height:34px;min-height:34px;padding:3px 7px}.app .bottom,.app .bottom button{height:44px}.swipe-guide{height:18px}.swipe-actions,.swipe-actions button{height:52px}.family-likes{padding-top:4px;padding-bottom:5px}.swipe-info{padding-top:6px;padding-bottom:4px}.swipe-card h1{font-size:18px}
}
@media(min-width:700px){.phone.app{margin:0;border-radius:0}}

/* 0.1.4 family-day decisions + image correction */
.today-view .suggestion .image-edit{position:absolute;left:6px;top:6px;z-index:3;width:auto;height:25px;padding:0 7px;border-radius:999px;background:#111c;color:#fff;border:1px solid #ffffff55;font-size:9px;font-weight:800}
.swipe-image-edit{position:absolute;z-index:6;top:12px;left:50%;transform:translateX(-50%);padding:6px 9px;border-radius:999px;background:#111c;color:#fff;border:1px solid #ffffff66;font-size:10px}
.modal-note{margin:0 0 4px;color:#aaa;font-size:12px;line-height:1.35}
.modal-card .eaten-choice,.modal-card .image-action{min-height:48px;text-align:left;background:#29292e;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:8px}
.modal-card .eaten-choice b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-card .eaten-choice.selected{outline:2px solid var(--accent);background:#343027}.modal-card .image-action{justify-content:center;text-align:center}.modal-card .image-action.report{background:#482126;color:#ffd0d4}
.meal-button{display:grid!important;place-items:center;align-content:center;gap:1px;padding:4px 10px!important}.meal-button small{font-size:9px;color:#555}.meal-button b{font-size:12px;max-width:94vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meal-readonly{height:48px;border:1px solid var(--line);border-radius:13px;background:#1a1a1e;display:grid;place-items:center;align-content:center;gap:1px;text-align:center}.meal-readonly small{font-size:9px;color:#aaa}.meal-readonly b{font-size:12px;max-width:92vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-height:720px){.meal-readonly{height:44px}.today-view .suggestion .image-edit{height:22px;font-size:8px}.swipe-image-edit{top:8px;padding:5px 8px}}

/* 0.2.5 mobile food-matching polish */
.hidden{display:none!important}.desktop-mobile-message{display:none}
body.mobile-family{background:radial-gradient(circle at 50% -10%,#3a251d 0,#171315 38%,#0d0c0e 75%)}
.desktop-mobile-message{display:none}
.mobile-family .phone{background:linear-gradient(180deg,#171417 0,#111114 55%,#0e0e10 100%)}
.hero .mark{background:linear-gradient(145deg,#ffd972,#f0a93a);box-shadow:0 12px 38px #f0a93a35;font-size:29px}
.hero h1{letter-spacing:-.035em}.primary{background:linear-gradient(135deg,#ffd45c,#f3ad3d);box-shadow:0 8px 24px #eaa52d2b}
.panel{box-shadow:0 18px 60px #0004}.profile-card{transition:transform .15s ease,border-color .15s ease}.profile-card:active{transform:scale(.97)}
.app .tabs .active{background:linear-gradient(135deg,#524032,#3b3028);box-shadow:inset 0 0 0 1px #ffd45c28}
.today-view .suggestion,.swipe-card{box-shadow:0 12px 34px #0005}.today-view .suggestion{border-color:#3a3430}
.swipe-card{transition:transform .17s ease,opacity .17s ease;transform-origin:center 85%}.swipe-card.leaving-left{transform:translateX(-125%) rotate(-12deg)!important;opacity:0}.swipe-card.leaving-right{transform:translateX(125%) rotate(12deg)!important;opacity:0}.swipe-card.leaving-fav{transform:translateY(-45%) scale(.92)!important;opacity:0}
.swipe-actions button{transition:transform .12s ease,filter .12s ease}.swipe-actions button:active{transform:scale(.94);filter:brightness(1.12)}.swipe-actions button:disabled{opacity:.55}
.swipe-done{flex:1;display:grid;place-content:center;text-align:center;padding:28px;color:#eee}.swipe-done>span{font-size:56px}.swipe-done h2{font-size:24px;margin:10px 0 3px}.swipe-done p{color:var(--soft);margin:0}
.app-toast{position:fixed;z-index:80;left:50%;bottom:calc(64px + env(safe-area-inset-bottom));width:min(430px,calc(100% - 34px));transform:translate(-50%,18px);opacity:0;pointer-events:none;background:#f7f1e8;color:#231d18;border:1px solid #fff8;border-radius:14px;padding:12px 15px;text-align:center;font-size:13px;font-weight:800;box-shadow:0 16px 50px #0009;transition:opacity .18s ease,transform .18s ease}.app-toast.show{opacity:1;transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){.swipe-card,.swipe-actions button,.app-toast,.profile-card{transition:none!important}}
@media(min-width:760px){body.mobile-family{min-height:100vh;display:grid;place-items:center;padding:30px}.mobile-family .mobile-gated{display:none!important}.desktop-mobile-message{display:grid;place-items:center;width:min(520px,calc(100% - 40px));min-height:360px;padding:42px;border:1px solid #40362f;border-radius:28px;background:linear-gradient(160deg,#211b1b,#141315);box-shadow:0 28px 90px #0008;text-align:center}.desktop-mobile-message>div{max-width:390px}.desktop-mobile-message span{display:block;font-size:64px}.desktop-mobile-message h1{font-size:30px;margin:18px 0 8px}.desktop-mobile-message p{color:#bcb4ad;line-height:1.55;margin:0}}
