/* Nossa Casa — linguagem visual inspirada no iOS (cores de sistema, cartões, materiais com desfoque). */
:root{
  --bg:#f2f2f7;--card:#fff;--card2:#e9e9ee;--fill:rgba(120,120,128,.12);
  --label:#000;--label2:rgba(60,60,67,.62);--label3:rgba(60,60,67,.32);--sep:rgba(60,60,67,.16);
  --blue:#007aff;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--teal:#30b0c7;--indigo:#5856d6;--yellow:#ffcc00;
  --material:rgba(249,249,249,.82);--hud:rgba(255,255,255,.88);--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 28px rgba(0,0,0,.06);
  --r:22px;--r-sm:14px;--pad:20px;--title:34px;--body:17px;--tab:84px;
  color-scheme:light;
}
html[data-theme="dark"]{
  --bg:#000;--card:#1c1c1e;--card2:#2c2c2e;--fill:rgba(120,120,128,.24);
  --label:#fff;--label2:rgba(235,235,245,.62);--label3:rgba(235,235,245,.3);--sep:rgba(84,84,88,.55);
  --blue:#0a84ff;--green:#30d158;--orange:#ff9f0a;--red:#ff453a;--teal:#40c8e0;--indigo:#5e5ce6;--yellow:#ffd60a;
  --material:rgba(28,28,30,.78);--hud:rgba(44,44,46,.9);--shadow:none;color-scheme:dark;
}
/* Geladeira: tela grande de toque, vista de pé — tudo maior. */
html.fridge{--r:30px;--r-sm:20px;--pad:28px;--title:52px;--body:22px;--tab:112px}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--label)}
body{font:400 var(--body)/1.35 -apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","SamsungOne","Samsung Sans","Helvetica Neue",Helvetica,sans-serif;
  -webkit-font-smoothing:antialiased;letter-spacing:-.01em;min-height:100vh}
a{color:var(--blue);text-decoration:none}
button,input{font:inherit;color:inherit}
img{display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon.solid{fill:currentColor;stroke:none}

.app{max-width:1120px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 18px) 16px calc(var(--tab) + env(safe-area-inset-bottom) + 28px)}
html.fridge .app{padding:40px 44px calc(var(--tab) + 48px)}

/* Título grande, como no iOS */
.top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:8px 4px 22px}
.top .caption{font-size:.78em;font-weight:600;color:var(--label2);margin:0 0 2px}.top .caption::first-letter{text-transform:uppercase}
.top h1{font-size:var(--title);font-weight:700;letter-spacing:-.025em;line-height:1.08;margin:0}
.clock-big{font-size:calc(var(--title)*2.1);font-weight:600;letter-spacing:-.04em;line-height:.95;font-variant-numeric:tabular-nums;margin:0}

/* Indicador de estado (bolinha + texto) */
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--fill);font-size:.78em;font-weight:600;color:var(--label2);white-space:nowrap}
.dot{width:9px;height:9px;border-radius:50%;background:var(--label3);flex:none}
.on .dot{background:var(--green);box-shadow:0 0 0 4px rgba(52,199,89,.22)}
.off .dot{background:var(--orange)}

/* Seções e cartões */
.section{margin:30px 0 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 6px 12px}
.section-head h2{font-size:1.3em;font-weight:700;letter-spacing:-.02em;margin:0}
.section-head a{font-size:.9em}
.card{background:var(--card);border-radius:var(--r);padding:var(--pad);box-shadow:var(--shadow)}
.muted{color:var(--label2)}
.small{font-size:.8em}
.foot{font-size:.76em;color:var(--label2);margin:10px 8px 0;line-height:1.4}

/* Widget de foto */
.photo-widget{display:block;position:relative;border-radius:var(--r);overflow:hidden;background:#111;aspect-ratio:4/3;box-shadow:var(--shadow)}
html.fridge .photo-widget{aspect-ratio:4/4.4}
.photo-widget img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.photo-widget img.show{opacity:1}
.photo-widget .shade{position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,rgba(0,0,0,.62),transparent);pointer-events:none}
.photo-widget .meta{position:absolute;left:var(--pad);right:var(--pad);bottom:var(--pad);display:flex;align-items:flex-end;justify-content:space-between;gap:12px;color:#fff}
.photo-widget .meta b{display:block;font-size:1.15em;letter-spacing:-.02em}
.photo-widget .meta span{font-size:.8em;opacity:.85}
.empty-photo{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:#fff;background:radial-gradient(120% 90% at 30% 10%,#2f6d8f 0%,#163447 55%,#0d1d27 100%)}
.empty-photo .icon{width:56px;height:56px;margin-bottom:14px;opacity:.9}
.empty-photo b{font-size:1.4em;letter-spacing:-.02em}

/* Botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-weight:600;cursor:pointer;text-decoration:none}
.btn:active{opacity:.75}
.btn.gray{background:var(--fill);color:var(--blue)}
.btn.glass{background:rgba(255,255,255,.22);color:#fff;-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}
.btn.wide{width:100%}
.btn[disabled]{opacity:.45}
html.fridge .btn{min-height:68px;padding:0 30px}

/* Carrossel de vídeos, estilo Apple TV */
.rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 4px 6px;margin:0 -4px;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail .video{flex:0 0 min(72%,320px);scroll-snap-align:start}
html.fridge .rail .video{flex-basis:420px}
.grid-videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px 14px}
html.fridge .grid-videos{grid-template-columns:repeat(2,1fr);gap:28px 22px}
.video{display:block;background:none;border:0;padding:0;text-align:left;cursor:pointer;color:var(--label)}
.video .thumb{position:relative;aspect-ratio:16/9;border-radius:var(--r-sm);overflow:hidden;background:var(--card2)}
.video .thumb img{width:100%;height:100%;object-fit:cover}
.video .badge{position:absolute;left:10px;top:10px;padding:4px 9px;border-radius:7px;background:var(--red);color:#fff;font-size:.62em;font-weight:700;letter-spacing:.04em}
.video .play{position:absolute;right:10px;bottom:10px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
html.fridge .video .play{width:56px;height:56px}
.video strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.9em;font-weight:600;margin:9px 2px 2px;line-height:1.25}
.video span{display:block;font-size:.76em;color:var(--label2);margin:0 2px}
.video:active .thumb{transform:scale(.98)}

/* Mosaico de fotos */
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;border-radius:var(--r);overflow:hidden}
html.fridge .mosaic{grid-template-columns:repeat(4,1fr);gap:4px}
.mosaic a{aspect-ratio:1;background:var(--card2);overflow:hidden}
.mosaic img{width:100%;height:100%;object-fit:cover}

/* Cartão de aparelho, estilo app Casa */
.device{display:flex;align-items:center;gap:16px}
.squircle{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--blue);flex:none}
.squircle .icon{width:28px;height:28px}
html.fridge .squircle{width:68px;height:68px;border-radius:18px}
.device b{display:block;font-size:1.05em}
.device .state{font-size:.82em;color:var(--label2)}
.device .pill{margin-left:auto}

/* Blocos de controle, estilo Central de Controle */
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (min-width:700px){.tiles{grid-template-columns:repeat(4,1fr)}}
.tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:18px;min-height:118px;padding:16px;border:0;border-radius:var(--r);background:var(--card);color:var(--label);text-align:left;cursor:pointer;box-shadow:var(--shadow);transition:transform .12s ease}
.tile:active{transform:scale(.96)}
.tile .bubble{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--fill);color:var(--label)}
.tile b{font-size:.95em;font-weight:600}
.tile small{display:block;font-size:.76em;color:var(--label2);font-weight:400}
.tile.active{background:var(--blue);color:#fff}
.tile.active .bubble{background:rgba(255,255,255,.25);color:#fff}
.tile.active small{color:rgba(255,255,255,.8)}
html.fridge .tile{min-height:160px;padding:22px}

/* Lista agrupada (inset grouped) */
.list{background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.row{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 16px;color:var(--label);background:none;border:0;width:100%;text-align:left;cursor:pointer;position:relative}
.row+.row::before,.row+details::before,details+.row::before{content:"";position:absolute;top:0;left:62px;right:0;height:1px;background:var(--sep)}
.row .mini{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.row .mini .icon{width:19px;height:19px}
.row .text{flex:1;min-width:0}
.row .text b{display:block;font-weight:400}
.row .text span{display:block;font-size:.78em;color:var(--label2)}
.row .chev{color:var(--label3);width:18px;height:18px}
.row:active{background:var(--fill)}
html.fridge .row{min-height:80px;padding:14px 22px}
details.row-group{position:relative}
details.row-group>summary{list-style:none}
details.row-group>summary::-webkit-details-marker{display:none}
details.row-group[open] .chev{transform:rotate(90deg)}
.inset{padding:4px 16px 18px 62px}

/* Controle segmentado */
.segmented{display:flex;background:var(--fill);border-radius:10px;padding:2px;gap:2px}
.segmented button{flex:1;border:0;background:none;border-radius:8px;padding:7px 10px;font-size:.82em;font-weight:500;cursor:pointer;color:var(--label)}
.segmented button[aria-pressed="true"]{background:var(--card);box-shadow:0 2px 6px rgba(0,0,0,.12);font-weight:600}
html[data-theme="dark"] .segmented button[aria-pressed="true"]{background:#636366}

/* Campos */
.field{width:100%;min-height:50px;padding:0 16px;border:0;border-radius:12px;background:var(--fill);font-size:1em;outline:none}
.field:focus{box-shadow:0 0 0 3px rgba(10,132,255,.35)}
label.cap{display:block;font-size:.78em;color:var(--label2);margin:14px 4px 6px}

/* Envio de fotos */
.upload{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:28px var(--pad)}
.upload .squircle{width:64px;height:64px;border-radius:18px;background:linear-gradient(160deg,#ffcc00,#ff9500)}
.upload h3{margin:6px 0 0;font-size:1.15em;letter-spacing:-.02em}
.upload p{margin:0 0 8px;color:var(--label2);font-size:.85em}
.upload input[type=file]{display:none}
.bar{width:100%;height:6px;border-radius:3px;background:var(--fill);overflow:hidden;display:none}
.bar i{display:block;height:100%;width:0;background:var(--blue);border-radius:3px;transition:width .2s}
.status{font-size:.82em;color:var(--label2);min-height:1.2em;margin:0}

/* Código de entrada */
.pin{display:flex;gap:10px;justify-content:center;margin:10px 0}
.pin span{width:52px;height:64px;border-radius:14px;background:var(--fill);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:600;font-variant-numeric:tabular-nums}
.qr{width:200px;height:200px;border-radius:18px;background:#fff;padding:12px;margin:4px auto 0}
.address{display:block;text-align:center;font-weight:600;font-size:1.05em;margin:6px 0;word-break:break-all;color:var(--label)}

/* Player */
.player{border-radius:var(--r);overflow:hidden;background:#000;aspect-ratio:16/9;box-shadow:var(--shadow)}
.player iframe{width:100%;height:100%;border:0;display:block}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}

/* Testes */
.test img,.test video{width:100%;border-radius:var(--r-sm);background:#000;margin:6px 0 12px}
.test .actions{margin-top:6px}

/* Barra de abas */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;padding:6px 8px calc(env(safe-area-inset-bottom) + 6px);
  background:var(--material);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border-top:.5px solid var(--sep)}
.tabbar a{flex:1;max-width:180px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;color:var(--label2);font-size:11px;font-weight:500}
.tabbar a .icon{width:27px;height:27px}
.tabbar a[aria-current="page"]{color:var(--blue)}
html.fridge .tabbar{padding:12px 24px 18px}
html.fridge .tabbar a{font-size:17px;gap:6px}
html.fridge .tabbar a .icon{width:40px;height:40px}

/* Aviso flutuante (HUD) */
.hud{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 14px);z-index:50;transform:translate(-50%,-140%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:12px 20px;border-radius:999px;
  background:var(--hud);color:var(--label);box-shadow:0 10px 30px rgba(0,0,0,.18);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);font-size:.86em;font-weight:600;transition:transform .35s cubic-bezier(.2,.9,.3,1.2)}
.hud.show{transform:translate(-50%,0)}
.hud .icon{width:20px;height:20px}
.hud.ok .icon{color:var(--green)}
.hud.warn .icon{color:var(--orange)}
html.fridge .hud{top:28px;padding:18px 30px}

/* Tela de entrada */
.entry{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.entry .card{width:100%;max-width:420px;text-align:center;padding:34px 26px}
.app-icon{width:84px;height:84px;border-radius:20px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(160deg,#ffb340,#ff7a00);box-shadow:0 8px 24px rgba(255,122,0,.3)}
.app-icon .icon{width:46px;height:46px}
.entry h1{font-size:28px;margin:0 0 6px;letter-spacing:-.02em}
.entry .field{text-align:center;font-size:28px;letter-spacing:.35em;font-weight:600;min-height:62px;margin:18px 0 14px}
.error{color:var(--red);font-size:.85em;min-height:1em;margin:10px 0 0}

@media (max-width:420px){.clock-big{font-size:68px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Início: foto + lançador de apps, como a tela de início do iPad */
.home-hero{display:grid;gap:22px}
.launcher{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 10px;padding:18px 8px 6px}
.launcher a{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--label);font-size:.78em;font-weight:500;text-align:center}
.app-tile{width:64px;height:64px;border-radius:15px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 16px rgba(0,0,0,.18);transition:transform .12s ease}
.app-tile .icon{width:32px;height:32px}
.launcher a:active .app-tile{transform:scale(.92)}
html.fridge .launcher{grid-template-columns:repeat(6,1fr);padding:4px 0 0}
html.fridge .app-tile{width:112px;height:112px;border-radius:26px}
html.fridge .app-tile .icon{width:54px;height:54px}
html.fridge .launcher a{font-size:.85em}
@media (min-width:900px){html:not(.fridge) .home-hero{grid-template-columns:1.4fr 1fr;align-items:center}}

/* Busca do YouTube */
.search{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;border-radius:14px;background:var(--fill);margin:0 0 14px}
.search .icon{color:var(--label2)}
.search input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:1em;color:var(--label);height:50px}
.search input::-webkit-search-cancel-button{-webkit-appearance:none}
html.fridge .search{min-height:84px;border-radius:22px;padding:0 26px}
html.fridge .search input{height:80px}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 6px;padding:0 16px 4px}
.chips::-webkit-scrollbar{display:none}
.chips button{flex:none;border:0;border-radius:999px;padding:9px 16px;background:var(--card);color:var(--label);font-size:.86em;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}
.chips button:active{background:var(--blue);color:#fff}
html.fridge .chips{margin:0 0 6px;padding:0 0 4px}
html.fridge .chips button{padding:16px 28px}
.paste{margin:10px 0 0}
.video .badge.time{left:auto;right:10px;top:auto;bottom:10px;background:rgba(0,0,0,.72)}
.video .badge.time~.play{display:none}
.skeleton .thumb{animation:pulse 1.2s ease-in-out infinite}
.skeleton strong{background:var(--fill);border-radius:6px;width:80%;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}

/* Player */
.watch-head{margin:18px 4px 6px}
.watch-head h1{font-size:1.25em;font-weight:700;letter-spacing:-.02em;margin:0 0 4px;line-height:1.25}
.watch-head p{margin:0}
.btn .icon.solid{fill:currentColor;stroke:none}

/* QR de entrada */
.qr-big{width:min(72vw,300px);height:auto;aspect-ratio:1}
html.fridge .qr-big{width:420px}
html.fridge .entry .card{max-width:640px;padding:48px 40px}

/* Passos do convite */
.steps{text-align:left;padding-left:22px;margin:18px 0 22px;line-height:1.45}
.steps li{margin:0 0 12px}

/* Acabamento iPadOS no Início: fundo com a foto desfocada, saudação, doca de vidro */
.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;background:var(--bg);pointer-events:none}
.ambient img{position:absolute;inset:-12%;width:124%;height:124%;object-fit:cover;filter:blur(60px) saturate(1.5);opacity:0;transform:scale(1.1);transition:opacity 1.5s ease}
.ambient img[src]{opacity:.55}
html[data-theme="light"] .ambient img[src]{opacity:.35}
.ambient::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.15),rgba(0,0,0,.55) 70%,#000)}
html[data-theme="light"] .ambient::after{background:linear-gradient(to bottom,rgba(242,242,247,.2),rgba(242,242,247,.75) 70%,#f2f2f7)}
body[data-page="home"]{background:transparent}
.home-top{align-items:flex-end}
.greet{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.greet b{font-size:1.5em;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.greet>span:not(.pill){font-size:.85em;color:var(--label2)}
html.fridge .greet b{font-size:2.1em}
.photo-widget img.show{animation:kenburns 22s ease-out forwards}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.07)}}
html.fridge .photo-widget{aspect-ratio:4/3.4}
.dock{background:var(--material);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);border-radius:calc(var(--r) + 6px);border:.5px solid var(--sep)}
html.fridge .dock{padding:30px 22px 24px}
.launcher.dock{padding:20px 10px 16px}
html.fridge .launcher.dock{padding:30px 20px 24px}
body[data-page="home"] .card,body[data-page="home"] .chips button{background:var(--material);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}

@media (max-width:600px){html:not(.fridge) .grid-videos{grid-template-columns:repeat(2,1fr);gap:16px 12px}html:not(.fridge) .grid-videos .video strong{font-size:.82em}}

/* Geladeira: a barra do navegador Samsung cobre o rodapé, então as abas sobem e flutuam no topo (como no iPadOS 18) */
html.fridge .tabbar{top:16px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);gap:4px;padding:8px;border-radius:999px;border:.5px solid var(--sep);box-shadow:0 12px 32px rgba(0,0,0,.35)}
html.fridge .tabbar a{flex:none;max-width:none;flex-direction:row;gap:10px;padding:12px 24px;border-radius:999px;font-size:20px;font-weight:600}
html.fridge .tabbar a .icon{width:28px;height:28px}
html.fridge .tabbar a[aria-current="page"]{background:var(--fill);color:var(--label)}
html.fridge .app{padding-top:112px;padding-bottom:200px}
html.fridge .hud{top:110px}

/* ===== App completo: widgets, Casa, Fotos, Lousa, Mensagem, Porta-retrato ===== */
:root{--ink-amarelo:#b38600;--ink-rosa:#d1345b;--ink-azul:#0071a4;--ink-verde:#1f8a3c}
html[data-theme="dark"]{--ink-amarelo:#ffd60a;--ink-rosa:#ff6482;--ink-azul:#64d2ff;--ink-verde:#30d158}
.head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

/* Widgets do Início (estilo iPadOS) */
.widgets{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.widget{display:flex;flex-direction:column;gap:10px;min-height:150px;padding:16px;border-radius:var(--r);background:var(--material);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);color:var(--label);border:.5px solid var(--sep);overflow:hidden}
.widget-head{display:flex;align-items:center;gap:8px;font-size:.8em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--label2)}
.widget-head .icon{width:18px;height:18px}
.notes-widget .widget-head{color:var(--ink-amarelo)}
.shop-widget .widget-head{color:var(--orange)}
.widget-head b{margin-left:auto;background:var(--orange);color:#fff;border-radius:999px;padding:1px 9px;font-size:1em}
.w-notes{display:flex;flex-direction:column;gap:8px}
.w-notes .note{padding:0;background:none;border:0;box-shadow:none;min-height:0}
.w-notes .note p{font-size:1em;-webkit-line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.w-notes .note img{max-height:120px;width:auto;border-radius:10px}
.w-shop{display:flex;flex-direction:column;gap:6px}
.w-item{display:flex;align-items:center;gap:10px;font-size:.92em}
.w-item::before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid var(--label3);flex:none}
html.fridge .widget{min-height:230px;padding:24px}
html.fridge .widgets{gap:20px}

/* Cartões de destaque da aba Casa */
.feature-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.feature{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:var(--r);color:#fff;min-height:150px}
.feature b{font-size:1.05em;margin-top:auto}
.feature span:last-child{font-size:.78em;opacity:.75}
.feature-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16)}
.message-card{background:radial-gradient(120% 120% at 0% 0%,#2c2c2e,#000);border:.5px solid #3a3a3c}
.draw-card{background:radial-gradient(120% 120% at 100% 0%,#3a2a5c,#0b0b12);border:.5px solid #3a3a3c}
html.fridge .feature{min-height:200px;padding:26px}

/* Composição de recado e mensagem */
.compose{display:flex;flex-direction:column;gap:12px}
.field.area{min-height:90px;padding:14px 16px;line-height:1.4;resize:none;font-family:inherit}
.field.area.big{font-size:1.25em;font-weight:600;min-height:80px}
.dark-compose{background:#000;color:#fff;border:.5px solid #3a3a3c}
.dark-compose .field{background:#1c1c1e;color:#fff}
.dark-compose .field::placeholder{color:#8e8e93}
.compose-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.compose-row .btn{margin-left:auto}
.colors{display:flex;gap:10px}
.dot-color{width:30px;height:30px;border-radius:50%;border:3px solid transparent;cursor:pointer;padding:0}
.dot-color.amarelo{background:#ffd60a}.dot-color.rosa{background:#ff6482}.dot-color.azul{background:#64d2ff}.dot-color.verde{background:#30d158}
.dot-color[aria-pressed="true"]{border-color:var(--label);box-shadow:0 0 0 2px var(--bg) inset}
.segmented.who{flex:none}
html.fridge .dot-color{width:44px;height:44px}

/* Recados: cartões escuros, escrita colorida */
.notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:14px}
html.fridge .notes{grid-template-columns:repeat(2,1fr);gap:20px}
.note{position:relative;display:flex;flex-direction:column;gap:10px;min-height:120px;padding:18px;border-radius:var(--r);background:var(--card);box-shadow:var(--shadow);border:.5px solid var(--sep)}
html[data-theme="dark"] .note{background:#111113}
.note p{margin:0;font-size:1.15em;font-weight:600;line-height:1.3;white-space:pre-wrap;word-break:break-word}
.note.amarelo p{color:var(--ink-amarelo)}.note.rosa p{color:var(--ink-rosa)}.note.azul p{color:var(--ink-azul)}.note.verde p{color:var(--ink-verde)}
.note.drawn{background:#000;padding:10px}
.note.drawn img{width:100%;border-radius:14px}
.note-meta{margin-top:auto;font-size:.74em;color:var(--label2)}
.note-del{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:0;background:var(--fill);color:var(--label2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.note-del .icon{width:16px;height:16px}

/* Lista de compras estilo Lembretes */
.reminders .add-row{cursor:text}
.check{width:26px;height:26px;border-radius:50%;border:2px solid var(--label3);display:flex;align-items:center;justify-content:center;flex:none;color:transparent;transition:all .15s}
.check .icon{width:16px;height:16px;stroke-width:3}
.check.add{border:0;color:var(--blue)}
.check.add .icon{width:24px;height:24px;stroke-width:2}
.shop-item.done .check{background:var(--orange);border-color:var(--orange);color:#fff}
.shop-item.done .text b{color:var(--label2);text-decoration:line-through}
.bare{flex:1;border:0;background:none;outline:none;font-size:1em;color:var(--label);min-height:36px}
html.fridge .check{width:36px;height:36px}

/* Fotos */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border-radius:var(--r);overflow:hidden}
html.fridge .photo-grid{grid-template-columns:repeat(4,1fr);gap:4px}
.photo-cell{position:relative;aspect-ratio:1;border:0;padding:0;background:var(--card2);cursor:pointer;overflow:hidden}
.photo-cell img{width:100%;height:100%;object-fit:cover}
.photo-cell .badge{position:absolute;right:8px;bottom:8px;padding:3px 8px;border-radius:7px;background:rgba(0,0,0,.7);color:#fff;font-size:.62em;font-weight:700}
.viewer{position:fixed;inset:0;z-index:60;background:#000;display:flex;flex-direction:column}
.viewer[hidden]{display:none}
.viewer-stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}
.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%;object-fit:contain}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px calc(env(safe-area-inset-bottom) + 14px);color:#fff}
html.fridge .viewer-bar{order:-1;padding:24px 28px}
.viewer-pos{font-size:.85em;color:rgba(255,255,255,.7)}
.viewer-actions{display:flex;gap:10px}
.round{width:48px;height:48px;border-radius:50%;border:0;background:rgba(120,120,128,.32);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.round[aria-pressed="true"]{background:var(--blue)}
.round.danger{color:#ff6961}
html.fridge .round{width:68px;height:68px}
body.viewer-open .tabbar{display:none}

/* Lousa */
.board-wrap{position:relative;border-radius:var(--r);overflow:hidden;background:#000;border:.5px solid #3a3a3c;aspect-ratio:3/4;max-height:calc(100vh - 340px);margin:0 auto}
html.fridge .board-wrap{aspect-ratio:4/4.3}
.board{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}
.board-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;color:#48484a;font-size:1.3em;font-weight:600;pointer-events:none}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:14px 16px}
html[data-theme="dark"] .toolbar{background:#111113}
.inks,.sizes,.tools{display:flex;align-items:center;gap:10px}
.ink{width:34px;height:34px;border-radius:50%;border:3px solid transparent;background:var(--ink);cursor:pointer;padding:0}
.ink[aria-pressed="true"]{border-color:var(--label);box-shadow:0 0 0 2px var(--bg) inset}
.size{width:40px;height:40px;border-radius:50%;border:0;background:var(--fill);display:flex;align-items:center;justify-content:center;cursor:pointer}
.size i{display:block;border-radius:50%;background:var(--label)}
.size[aria-pressed="true"]{background:var(--blue)}
.size[aria-pressed="true"] i{background:#fff}
.tools .round{background:var(--fill);color:var(--label)}
.tools .round[aria-pressed="true"]{background:var(--blue);color:#fff}
.draw-actions{justify-content:flex-end}
html.fridge .ink{width:52px;height:52px}
html.fridge .size{width:60px;height:60px}

/* Mensagem em tela cheia: preto absoluto, letra grande */
body.message-screen{margin:0;background:#000;color:#fff;min-height:100vh;display:flex;flex-direction:column;cursor:pointer}
.message-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8vh 7vw;text-align:center}
.message-text{margin:0;font-size:clamp(34px,8.5vw,120px);font-weight:700;letter-spacing:-.03em;line-height:1.08;word-break:break-word}
.muted-text{color:#48484a;font-size:clamp(24px,5vw,56px)}
.message-drawing{max-width:100%;max-height:72vh;border-radius:22px}
.message-sign{margin:4vh 0 0;font-size:clamp(18px,3.4vw,40px);color:#8e8e93;font-weight:500}
.message-hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 18px);margin:0;text-align:center;font-size:15px;color:rgba(255,255,255,.35)}
html.fridge .message-hint{bottom:150px;font-size:20px}

/* Porta-retrato (StandBy) */
body.standby{margin:0;background:#000;color:#fff;height:100vh;overflow:hidden;cursor:pointer}
.standby-photos img{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease}
.standby-photos img.show{opacity:1;animation:kenburns 16s ease-out forwards}
.standby-shade{position:fixed;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),transparent 45%),linear-gradient(to bottom,rgba(0,0,0,.35),transparent 25%)}
.standby-clock{position:fixed;left:6vw;bottom:14vh}
.standby-clock p{margin:0 0 4px;font-size:clamp(18px,3.2vw,34px);font-weight:600;color:rgba(255,255,255,.85);text-transform:none}
.standby-clock p::first-letter{text-transform:uppercase}
.standby-clock b{display:block;font-size:clamp(90px,22vw,260px);font-weight:600;letter-spacing:-.05em;line-height:.9;font-variant-numeric:tabular-nums}
.standby-note{position:fixed;top:6vh;left:6vw;right:6vw;padding:16px 22px;border-radius:22px;background:rgba(28,28,30,.55);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);font-size:clamp(17px,2.8vw,30px);font-weight:600;color:#ffd60a}
.standby-note[hidden]{display:none}
html.fridge .standby-note{top:4vh}

/* Compras por imagem (mosaico estilo Bring!) */
.add-item{margin-bottom:14px}
.add-item .icon{color:var(--blue)}
.section-head.sub{margin-top:22px}
.section-head h3{font-size:1em;font-weight:700;margin:0;color:var(--label2)}
.shop-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
html.fridge .shop-tiles{grid-template-columns:repeat(5,1fr);gap:14px}
.shop-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;aspect-ratio:1;padding:10px 6px;border:0;border-radius:20px;background:linear-gradient(160deg,#ff6b4a,#e63a2e);color:#fff;cursor:pointer;text-align:center;transition:transform .12s ease,opacity .2s}
.shop-tile .food{font-size:40px;line-height:1.1}
.shop-tile b{font-size:.82em;font-weight:600;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.shop-tile small{font-size:.66em;opacity:.8}
.shop-tile:active,.shop-tile.tapped{transform:scale(.92)}
.shop-tile.tapped{opacity:.4}
.shop-tile.done{background:var(--card);color:var(--label)}
html[data-theme="dark"] .shop-tile.done{background:#1c1c1e}
.shop-tile.done .food{filter:saturate(.7)}
.shop-tile.done small{color:var(--label2)}
.shop-tiles.small .shop-tile{aspect-ratio:auto;min-height:92px;border-radius:16px}
.shop-tiles.small .shop-tile .food{font-size:28px}
html.fridge .shop-tile .food{font-size:60px}
html.fridge .shop-tiles.small .shop-tile .food{font-size:40px}
.w-item[data-food]::before{content:attr(data-food);border:0;width:auto;height:auto;font-size:1.15em}

/* Receitas */
.feature-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.recipe-card{background:radial-gradient(120% 120% at 50% 0%,#5a3a12,#120b04);border:.5px solid #3a3a3c}
.recipe-panel .shop-tile small{font-size:.62em}
.recipe-panel .shop-tile[disabled]{opacity:.55;cursor:default}
.recipe-panel .actions .btn[disabled]{opacity:.45}

/* Medida real da geladeira (24/10, 18h38): janela 807x1376, dpr 1.5. Tamanhos ajustados a ela. */
html.fridge{--title:46px;--body:20px;--pad:24px}
html.fridge .app{padding:104px 28px 200px}
html.fridge .tabbar{max-width:calc(100% - 24px);top:12px;padding:6px}
html.fridge .tabbar a{padding:10px 15px;font-size:17px;gap:8px}
html.fridge .tabbar a .icon{width:24px;height:24px}
html.fridge .launcher{grid-template-columns:repeat(6,1fr);gap:14px 6px}
html.fridge .app-tile{width:88px;height:88px;border-radius:21px}
html.fridge .app-tile .icon{width:44px;height:44px}
html.fridge .launcher a{font-size:.72em}
html.fridge .greet b{font-size:1.8em}
html.fridge .notes{grid-template-columns:repeat(2,1fr)}
html.fridge .shop-tiles{grid-template-columns:repeat(4,1fr)}
html.fridge .hud{top:96px}
/* Aviso flutuante escondido de verdade (antes ficava meia bolinha visível no topo) */
.hud{opacity:0;visibility:hidden;transition:transform .35s cubic-bezier(.2,.9,.3,1.2),opacity .25s,visibility 0s .35s}
.hud.show{opacity:1;visibility:visible;transition:transform .35s cubic-bezier(.2,.9,.3,1.2),opacity .25s}

/* Código curto de entrada */
.short-code{font-size:40px;font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums;margin:4px 0 10px}
html.fridge .short-code{font-size:56px}
.code-field{width:118px;min-height:42px;text-align:center;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
#short-form .btn{min-height:42px;padding:0 16px}

/* Geladeira: sem zoom de pinça nem deslizar para os lados (vídeo de 24/10, 18h42) */
html.fridge,html.fridge body{overflow-x:hidden;touch-action:pan-y;max-width:100vw}
html.fridge .board{touch-action:none}
