:root{--red:#e12b32;--black:#171717;--gray:#787878;--line:#e9e9e9;--paper:#fff;--soft:#f7f7f7}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--black);font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button,input,textarea{font:inherit}button{cursor:pointer;background:none;color:inherit;border:0}button:disabled{opacity:.45;cursor:wait}button:hover:not(:disabled){opacity:.75}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:4px}.header{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 5%;gap:30px}.brand{font-size:26px;font-weight:750;letter-spacing:-1px;text-decoration:none;display:flex;align-items:center;gap:10px}.brand span{font-size:11px;letter-spacing:1px;background:var(--red);color:#fff;padding:1px 6px;font-weight:600}.header-caption{font-size:11px;color:#888;border-left:1px solid #dedede;padding-left:30px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:20px;font-size:11px;color:#888}.header-actions button{border-left:1px solid var(--line);padding-left:20px;font-size:11px}main{max-width:1400px;margin:auto;padding:0 5%}.hero{display:flex;justify-content:space-between;align-items:center;padding:46px 0 42px}.eyebrow,.section-index{font-size:10px;letter-spacing:2px;font-weight:600;color:var(--gray)}.hero h1{font-size:49px;font-weight:650;line-height:1.3;letter-spacing:-1.5px;margin:14px 0}.hero h1 span{color:var(--red)}.subtitle{font-size:12px;color:var(--gray);margin:16px 0 0}.hero-right{padding:5px 0 5px 38px;border-left:1px solid #dedede;min-width:220px;margin-right:25px}.hero-right p{font-size:13px;font-weight:500;line-height:2.5;letter-spacing:1px;margin:0 0 15px}.hero-right>span{color:#999;font-size:10px}.toolbar{padding:18px 0;border-top:1px solid var(--black);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.date-nav{display:flex;align-items:center;gap:14px}.date-nav>button{font-size:18px;padding:3px 5px}.date-nav input{font-size:17px;font-weight:550;border:0;background:transparent;color:var(--black);width:163px}.date-nav .text-btn{font-size:11px;border:1px solid #ddd;padding:3px 10px}.date-nav>span{color:#969696;font-size:11px}.toolbar-right{display:flex;align-items:center;gap:14px}.outline{border:1px solid #d7d7d7;padding:8px 14px;font-size:11px;border-radius:3px}.text-btn{font-size:11px;color:#777}.primary{background:var(--red);color:#fff;padding:11px 22px;border-radius:3px;font-size:12px;font-weight:550}.dark{background:var(--black);color:#fff;padding:11px;border-radius:3px;font-size:12px}.full{width:100%}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:30px;align-items:start}.people-head{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.person{padding:0 0 20px;border-bottom:2px solid var(--black)}.person.mine{border-color:var(--red)}.person-top{display:flex;align-items:center;gap:10px}.person-top h2{font-size:17px;font-weight:600;margin:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-top .who{font-size:9px;line-height:1.5;padding:1px 5px;background:var(--black);color:#fff}.mine .who{background:var(--red)}.person-top .presence{margin-left:auto;color:#909090;font-size:10px}.person-metrics{display:flex;align-items:baseline;margin-top:17px;gap:6px}.person-metrics strong{font-size:35px;font-weight:550;line-height:1.2;letter-spacing:-1px}.person-metrics small{font-size:10px;color:#888}.person-metrics .count{margin-left:auto;color:#999;font-size:10px}.meal-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.meal-card{border:1px solid var(--line);padding:17px;min-width:0}.meal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.meal-heading h3{font-size:13px;font-weight:550;margin:0}.meal-heading .idx{font-size:9px;color:#999;margin-right:9px;font-weight:400}.meal-heading small{font-size:9px;color:#aaa}.meal-heading .done{color:var(--red)}.meal-photo{width:100%;height:155px;object-fit:cover;display:block;background:#f7f7f7}.meal-empty{width:100%;height:140px;background:var(--soft);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px}.meal-empty b{font-size:12px;font-weight:450;color:#777}.meal-empty span{font-size:10px;color:#aaa}.meal-info{padding:12px 0 10px;min-height:67px}.meal-info h4{font-size:12px;font-weight:500;margin:0;overflow-wrap:anywhere}.meal-info p{font-size:10px;color:#929292;margin:3px 0 0;overflow-wrap:anywhere}.meal-bottom{display:flex;align-items:baseline;gap:4px;border-top:1px solid #f0f0f0;padding-top:10px}.meal-bottom strong{font-size:21px;font-weight:500}.meal-bottom small{font-size:9px;color:#999}.meal-bottom button,.meal-bottom>span{margin-left:auto;font-size:10px;color:var(--red)}.meal-bottom>span{color:#999}.diary-footnote{font-size:10px;color:#aaa;margin:22px 0}.chat{border:1px solid #e4e4e4;position:sticky;top:24px;background:#fff}.chat-title{padding:22px 20px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end}.chat-title h2{font-size:17px;font-weight:550;margin:4px 0 0}.chat-title .section-index{font-size:8px}.chat-title>span{font-size:9px;color:#999}.chat-messages{height:380px;padding:20px 15px;overflow:auto;overscroll-behavior:contain}.chat-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.chat-empty strong{font-size:13px;font-weight:500}.chat-empty p{font-size:11px;color:#999;line-height:1.9}.msg{margin-bottom:18px;display:flex;flex-direction:column;align-items:flex-start}.msg.mine{align-items:flex-end}.msg-meta{font-size:9px;color:#999;margin-bottom:5px}.bubble{max-width:90%;padding:9px 12px;background:#f4f4f4;border-radius:2px 10px 10px 10px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.msg.mine .bubble{background:var(--black);color:#fff;border-radius:10px 2px 10px 10px}#chatForm{margin:0 15px;padding-top:13px;border-top:1px solid var(--line)}#message{width:100%;border:0;resize:vertical;font-size:12px;padding:4px;min-height:52px;max-height:150px;background:#fff}.chat-compose-bottom{display:flex;align-items:center;justify-content:space-between;margin:6px 0 12px;gap:10px}.chat-compose-bottom span{font-size:8px;color:#aaa}.chat-compose-bottom .primary{padding:7px 15px;font-size:10px}.chat-foot{display:block;text-align:center;font-size:8px;color:#aaa;padding:0 10px 16px}footer{margin-top:30px;padding:25px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:#a0a0a0}footer b{font-weight:400;margin:0 9px;color:#ccc}#authView{border-top:1px solid var(--black);padding:36px 0 45px;display:grid;grid-template-columns:1fr 400px;gap:60px}.auth-intro h2{font-size:24px;font-weight:500;margin:16px 0}.auth-intro p{font-size:12px;color:#888;line-height:2}.auth-features{display:flex;gap:20px;margin-top:40px;font-size:10px}.auth-features span{border-top:2px solid var(--red);padding-top:9px}.auth-card{border:1px solid var(--line);padding:26px}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs button{flex:1;font-size:12px;color:#8a8a8a;padding:0 0 13px;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.active{color:var(--red);border-bottom-color:var(--red)}.field{font-size:11px;display:block;margin-top:15px}.field>span{color:#a0a0a0;font-size:10px;margin-left:6px}.field input,.field textarea{display:block;width:100%;border:1px solid #dedede;border-radius:3px;padding:10px 11px;margin-top:6px;background:#fff;color:var(--black);font-size:12px}.field textarea{resize:vertical}input:focus,textarea:focus{outline:1px solid var(--black);outline-offset:0}::placeholder{color:#aaa;font-size:11px}.form-note{font-size:10px;color:#929292;line-height:1.8}.auth-card .form-note{margin:15px 0}.error{font-size:11px;color:var(--red);margin:12px 0}.error:empty{display:none}.loading{padding:35px;text-align:center;font-size:12px;color:#888}dialog{width:min(490px,calc(100% - 28px));max-height:92vh;overflow:auto;border:1px solid #ddd;border-radius:5px;padding:26px;background:#fff;color:var(--black);box-shadow:0 16px 60px #0002}dialog::backdrop{background:#0006}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-header .eyebrow{margin:0 0 5px}.dialog-header h2{font-size:21px;font-weight:550;margin:0}.close{font-size:24px;width:30px;height:30px;line-height:1}.photo-preview{height:190px;background:#f5f5f5;overflow:hidden}.photo-preview img{height:100%;width:100%;object-fit:cover}#photoPrompt{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}#photoPrompt b{font-size:13px;font-weight:500}#photoPrompt span{font-size:11px;color:#aaa}.photo-buttons{display:flex;gap:8px;margin:10px 0 18px}.photo-buttons button{font-size:10px;padding:6px 16px}.ai-panel{border:1px solid #e5e5e5;padding:16px}.ai-heading{display:flex;justify-content:space-between;align-items:center}.ai-heading b{font-size:12px;font-weight:550}.ai-heading span{font-size:9px;color:var(--red)}.compact{font-size:10px;margin:12px 0}.compact input{font-size:11px}.ai-panel .dark{font-size:11px;padding:9px}.ai-panel .form-note{margin-bottom:0;font-size:9px}#analysisResult{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:11px}#analysisResult .estimate{font-size:22px;font-weight:500}#analysisResult .estimate small{font-size:10px;font-weight:400;color:#777}#analysisResult table{width:100%;border-collapse:collapse;margin:9px 0;font-size:10px}#analysisResult td{padding:5px 0;border-bottom:1px solid #eee}#analysisResult td:last-child{text-align:right}#analysisResult p{font-size:10px;color:#888}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-footer{display:flex;align-items:center;margin-top:20px}.form-footer .primary{margin-left:auto}.danger{color:var(--red)}#inviteDialog>p,#confirmDialog>p{font-size:12px;color:#777;line-height:1.9}.invite-code{padding:20px 12px;margin:20px 0;background:#f5f5f5;color:var(--red);font:17px/1.8 ui-monospace,monospace;overflow-wrap:anywhere;text-align:center;letter-spacing:1px;user-select:all}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,10px);padding:12px 22px;max-width:92vw;width:max-content;background:#171717;color:#fff;font-size:12px;border-radius:3px;opacity:0;transition:.2s;pointer-events:none;z-index:30}#toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(min-width:1500px){.hero{padding:56px 0 48px}.hero h1{font-size:58px}}@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr) 270px;gap:20px}.meal-row,.people-head{gap:12px}.meal-card{padding:12px}.meal-photo{height:130px}.person-top{gap:6px}.person-top h2{font-size:15px;max-width:100px}.person-top .presence{display:none}.person-metrics strong{font-size:29px}.date-nav>span{display:none}.hero-right{margin-right:0}.chat-title{padding:20px 15px}#authView{gap:30px;grid-template-columns:1fr 360px}}@media(max-width:760px){.header{height:70px;padding:0 20px;gap:12px}.header-caption{display:none}.header-actions{gap:10px;font-size:9px}.header-actions button{font-size:9px;padding-left:10px}.brand{font-size:24px}.brand span{font-size:9px}main{padding:0 20px}.hero{padding:30px 0}.hero h1{font-size:35px;line-height:1.3;margin:10px 0}.hero-right{min-width:auto;padding-left:20px}.hero-right p{font-size:10px;line-height:2.4}.hero-right>span{display:none}.subtitle{font-size:10px;max-width:230px}.eyebrow{font-size:8px;letter-spacing:1.5px}.workspace{grid-template-columns:1fr;gap:20px}.toolbar{align-items:flex-start;flex-direction:column;padding:14px 0;gap:16px;margin-bottom:22px}.date-nav{width:100%;gap:12px}.date-nav input{font-size:15px;width:150px}.date-nav .text-btn{margin-left:auto}.toolbar-right{width:100%;justify-content:space-between}.toolbar-right .outline{padding:5px 11px;font-size:10px}.meal-card{padding:12px}.meal-empty{height:125px}.meal-photo{height:135px}.meal-heading{margin-bottom:12px}.meal-heading .idx{margin-right:5px}.meal-heading small{font-size:8px}.meal-info h4{font-size:11px}.meal-info p{font-size:9px}.meal-bottom button{font-size:9px}.person-top h2{font-size:15px;max-width:100px}.person-metrics strong{font-size:29px}.person-metrics .count{font-size:8px}.person-metrics small{font-size:9px}.person-top .who{font-size:8px}.chat{position:static}.chat-messages{height:300px}.chat-title>span{font-size:10px}.chat-compose-bottom span{font-size:9px}.chat-compose-bottom .primary{font-size:11px}.chat-foot{font-size:9px}footer{font-size:9px;gap:12px;flex-direction:column}#authView{grid-template-columns:1fr;gap:26px;padding-top:28px}.auth-intro h2{font-size:20px}.auth-intro p{font-size:11px}.auth-features{margin-top:22px;font-size:9px}.auth-card{padding:22px}.hero-right{border-left:none;padding-left:5px}dialog{padding:22px}.photo-preview{height:170px}.person{padding-bottom:15px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* 01and60: mobile-first touch targets and safe-area spacing. */
.brand{gap:9px;letter-spacing:0}.brand b{font-size:25px;font-weight:750}.brand span{font-size:12px;letter-spacing:0;background:none;color:var(--red);padding:0;font-weight:500}
@media(max-width:760px){
.header{height:auto;min-height:76px;flex-wrap:wrap;gap:6px 12px;padding:14px 20px;padding-top:max(14px,env(safe-area-inset-top))}.brand{gap:7px}.brand b{font-size:22px}.brand span{font-size:12px}.header-actions{font-size:10px}.header-actions button{min-height:40px}
main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.field input,.field textarea,#message,.date-nav input{font-size:16px}.date-nav input{min-width:0;width:155px;min-height:44px}.date-nav{gap:8px}.date-nav>button{min-width:38px;min-height:44px}.date-nav .text-btn{padding:4px 8px}.outline,.primary,.dark,.tabs button{min-height:44px}.meal-bottom button{min-height:40px;font-size:11px;padding:4px}.meal-empty{min-height:130px}.meal-row,.people-head{gap:10px}.meal-card{padding:10px}.meal-heading h3{font-size:13px}.meal-bottom strong{font-size:20px}.meal-bottom small{font-size:9px}.meal-info h4{font-size:12px}.meal-info p{font-size:11px}.person-top h2{font-size:15px;max-width:95px}.person-metrics{flex-wrap:wrap}.person-metrics .count{flex-basis:100%;margin-left:0;font-size:10px}.chat-compose-bottom .primary{min-height:44px;font-size:12px}.chat-compose-bottom span{font-size:9px}.chat-title>span{font-size:11px}.chat-foot{font-size:10px}.chat-messages{height:320px}.bubble{font-size:14px}.msg-meta{font-size:10px}dialog{max-height:92dvh;padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.close{min-width:44px;min-height:44px}.form-note{font-size:11px}.field{font-size:12px}.invite-code{font-size:16px}.form-footer{position:sticky;bottom:-20px;background:#fff;padding:12px 0;margin-top:12px}footer{padding-bottom:max(26px,env(safe-area-inset-bottom))}#toast{bottom:max(24px,env(safe-area-inset-bottom))}
}
@media(max-width:390px){.header-actions{margin-left:0;width:100%;justify-content:space-between}.hero-right{display:none}.meal-bottom{flex-wrap:wrap}.meal-bottom button,.meal-bottom>span{flex-basis:100%;text-align:left;margin-left:0}.date-nav{gap:4px}.auth-card{padding:18px}}
/* Black and red app shell; white remains for reading and form surfaces. */
body{background:#101010}.header{background:#080808;border-color:#292929;color:#fff}.brand b{color:white}.brand span{color:#ff454c}.header-caption,.header-actions{color:#aaa}.header-actions button{color:#ddd}.hero{color:#fff}.hero .eyebrow,.hero .subtitle,.hero-right>span{color:#b0b0b0}.hero-right{border-color:#333}.hero h1 span{color:#ff303b}.toolbar{border-top:2px solid var(--red);border-bottom-color:#333;color:white}.date-nav input{color:white;color-scheme:dark}.timezone{font-size:10px;color:#aaa}.toolbar .outline{border-color:#555;color:white}.toolbar .text-btn{color:#ccc}.date-nav .text-btn{border-color:#555;color:#ccc}.people-head{color:white}.person{border-bottom-color:#777}.person.mine{border-color:var(--red)}.person-top .who{background:white;color:black}.person.mine .who{background:var(--red);color:white}.person-top .presence{display:inline-block!important;font-size:11px;color:#eee}.meal-card{background:white;border-color:#282828}.chat{border-color:#333}.diary-footnote{color:#aaa}footer{color:#aaa;border-color:#333}.auth-intro{color:white}.auth-intro p{color:#aaa}#authView{border-top-color:var(--red)}.auth-card{background:white}.loading{color:#ddd}.chat-tools{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:9px 14px;border-bottom:1px solid #eee;font-size:10px}.chat-tools>span{margin-right:auto}.chat-tools button{color:var(--red);font-size:10px;min-height:32px}.delete-message{font-size:10px;color:#888;padding:4px 0}.history-row{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid #ddd;width:100%;gap:12px;font-size:12px}.history-row span{color:#888}#historyDate{width:100%;padding:12px;font-size:16px;border:1px solid #ccc}#historyList{margin-top:16px;font-size:12px}.share-text{width:100%;min-height:110px;resize:vertical;font:13px/1.7 sans-serif;padding:12px;border:1px solid #ddd;margin:12px 0;overflow-wrap:anywhere}#installDialog p,#shareDialog p,#receivedInvite p,#historyDialog p{font-size:13px;color:#666}.invite-code{font-size:14px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.toolbar-right{flex-wrap:wrap}.chat-messages{height:350px}
@media(max-width:760px){.header-actions{width:100%;justify-content:space-between}.header-actions #installApp{padding-left:0;border-left:0;color:#ff646b}.person-top{flex-wrap:wrap}.person-top .presence{flex-basis:100%;margin-left:0;font-size:11px}.date-nav .timezone{display:block;font-size:9px}.date-nav{flex-wrap:wrap}.toolbar-right{gap:8px;justify-content:flex-start}.toolbar-right .outline{font-size:11px}.chat-tools button{min-height:44px;font-size:11px}.delete-message{min-height:35px}.share-text{font-size:16px}.hero{padding-top:30px}.brand span{color:#ff454c}}
