.login{min-height:100dvh;display:grid;place-items:center;padding:24px}
.login form{width:100%;max-width:380px;background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:30px}
.login h1{font-size:34px;margin-bottom:4px}.login h1 em{color:var(--brand)}
.err{color:var(--bad);font-weight:700;font-size:14px;min-height:20px;margin-top:10px}
.app{display:none;min-height:100dvh;grid-template-columns:230px 1fr}
.app.on{display:grid}
nav.side{background:var(--paper);border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100dvh}
nav.side .logo{font:500 22px var(--display);padding:0 10px 18px}.logo em{color:var(--brand)}
nav.side button{justify-content:flex-start;background:transparent;border:0;padding:12px 14px;border-radius:12px;font-weight:700;color:var(--muted);width:100%;text-align:left}
nav.side button.on{background:var(--soft);color:var(--brand)}
nav.side .grow{flex:1}
main{padding:28px clamp(16px,4vw,44px) 110px;min-width:0;max-width:1100px}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.head h1{font-size:clamp(30px,4vw,42px)}
.head p{margin:4px 0 0;color:var(--muted)}
.view{display:none}.view.on{display:block}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0}
.box h3{font-size:20px;margin-bottom:10px}
.stat b{display:block;font:500 40px/1 var(--display);color:var(--brand);font-variant-numeric:tabular-nums}
.stat span{font-size:13px;color:var(--muted);font-weight:700}
.list{display:flex;flex-direction:column;gap:8px}
.item{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--paper);min-width:0}
.item .th{width:58px;height:58px;border-radius:12px;background:var(--soft);flex:none;overflow:hidden;display:grid;place-items:center;font:italic 26px var(--display);color:var(--brand)}
.item .th img{width:100%;height:100%;object-fit:cover}
.item .tx{flex:1;min-width:0}.item .tx strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .tx small{color:var(--muted)}
.acts{display:flex;gap:6px;flex-wrap:wrap}
.acts button,.acts a{padding:8px 12px;font-size:13px}
.check{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.check:last-child{border:0}.check input{width:22px;height:22px;accent-color:var(--brand);flex:none;margin-top:2px}
.check.done span{text-decoration:line-through;color:var(--muted)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.studio{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.stage{background:#111;border-radius:22px;padding:14px;display:grid;place-items:center;position:sticky;top:16px}
.stage canvas{width:100%;max-width:340px;aspect-ratio:9/16;border-radius:14px;background:#000;display:block}
.tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.tpl{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);text-align:left;display:block;font-weight:600}
.tpl b{display:block;font-size:15px}.tpl small{color:var(--muted);font-weight:600;font-size:12px}
.tpl.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.bar{height:8px;border-radius:9px;background:var(--soft);overflow:hidden;margin-top:10px;display:none}
.bar i{display:block;height:100%;width:0;background:var(--brand);transition:width .2s}
.swatch{display:flex;gap:10px;flex-wrap:wrap}
.swatch label{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0}
.swatch input{width:60px;height:44px;padding:2px}
.out{white-space:pre-wrap;background:var(--soft);border-radius:14px;padding:14px;font-size:15px;min-height:120px}
.flyer canvas{width:100%;max-width:380px;border-radius:14px;border:1px solid var(--line);display:block}
.tag{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800;background:var(--soft);color:var(--brand)}
.tag.novo{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.tag.cliente{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.filters button{padding:8px 14px;font-size:13px}.filters button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.demo{background:color-mix(in srgb,var(--warn) 14%,var(--paper));border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);padding:10px 14px;border-radius:12px;font-size:14px;margin-bottom:16px;display:none}
.week{display:flex;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:6px;margin:0 0 14px;width:max-content;max-width:100%;overflow-x:auto}
.week button{flex-direction:column;gap:2px;border:0;background:transparent;padding:8px 14px;border-radius:12px;font:500 20px var(--display);color:var(--ink)}
.week button small{font:700 10px var(--body);letter-spacing:.14em;color:var(--muted)}
.week button.on{background:var(--ink);color:var(--bg)}.week button.on small{color:var(--bg)}
.lbl{display:flex;justify-content:space-between;font:700 11px var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.box.dark{background:var(--ink);border-color:var(--ink);color:var(--bg)}.box.dark .lbl{color:color-mix(in srgb,var(--bg) 70%,transparent)}
.bigin{background:transparent;border:0;padding:4px 0;font:400 26px var(--display);color:inherit}.bigin::placeholder{color:color-mix(in srgb,currentColor 55%,transparent)}
.daily .check{border-bottom:1px solid var(--line);align-items:center}
.daily .check input[data-pri]{width:100%;height:auto;flex:1;margin:0;accent-color:auto}
.daily .item .tx strong{white-space:normal}.daily .item{flex-wrap:wrap}.daily .item .th{width:44px;height:44px}
.moods{display:flex;gap:8px}.moods button{flex:1;font-size:24px;padding:8px 0;background:var(--soft);border:0}.moods button.on{background:var(--brand);transform:scale(1.06)}
.meta{display:flex;align-items:center;gap:12px;padding:6px 0}.meta svg{flex:none}.meta b{font:500 18px var(--display)}.meta small{display:block;color:var(--muted);font-size:12px}
.tabbar{display:none}
.gal{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px}
.gal button{padding:0;border-radius:12px;overflow:hidden;width:64px;height:80px;flex:none;border:2px solid transparent;background:var(--soft)}
.gal button.on{border-color:var(--brand)}
.gal img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){
  .app.on{grid-template-columns:1fr}
  nav.side{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--paper);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));overflow-x:auto;gap:2px}
  .tabbar button{flex:1 0 auto;border:0;background:transparent;padding:10px 12px;font-size:12px;color:var(--muted);border-radius:10px}
  .tabbar button.on{color:var(--brand);background:var(--soft)}
  .g2,.g3,.studio,.row2{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}
  .stage{position:static}
}
.imp{margin-bottom:16px}.improw{display:flex;gap:10px;margin:8px 0}.improw input{flex:1;min-width:0}@media(max-width:560px){.improw{flex-direction:column}}
.ngrp{font:700 10px var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:14px 14px 4px;opacity:.8}
nav.side{overflow-y:auto}nav.side button{padding:9px 14px}
.toolbar{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.toolbar button{padding:8px 14px;font-size:14px}.toolbar .grow{flex:1}
.vida .box{margin-bottom:14px}.vida .grid .box{margin-bottom:0}.vida .grid{margin-bottom:14px}
.addrow{display:flex;gap:6px;margin-top:10px;align-items:center}.addrow input{flex:1;min-width:0;padding:10px 12px}.addrow .tm{flex:0 0 108px}.addrow .sel{flex:0 0 auto;width:auto;padding:10px}
.round{width:40px;height:40px;padding:0;border-radius:50%;display:grid;place-items:center;flex:none;font-size:20px}
.x{background:transparent;border:0;color:var(--muted);padding:0 6px;font-size:20px;line-height:1;margin-left:auto;opacity:.55}.x:hover{opacity:1;color:var(--bad)}
.box.dark .x{color:var(--bg)}
.vida .check{align-items:center}.vida .check span{flex:1}
.ev{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.ev b{font:500 18px var(--display);min-width:56px;color:var(--brand)}.ev span{flex:1}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.cal small{font:700 10px var(--body);color:var(--muted);padding:4px 0}
.cal button{border:0;background:transparent;padding:7px 0;border-radius:9px;font-size:13px;position:relative;color:var(--ink)}
.cal button.out{opacity:.35}.cal button.today{font-weight:800;color:var(--brand)}.cal button.on{background:var(--ink);color:var(--bg)}
.cal button.dot::after{content:"";position:absolute;bottom:2px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--brand)}
.pri-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--brand);margin-right:8px;vertical-align:middle}
.empty-s{color:var(--muted);font:italic 17px var(--display);margin:4px 0}
.monthbar{display:flex;flex-direction:column;gap:10px}.mnav{display:flex;align-items:center;gap:10px}.script-t{font:400 clamp(30px,5vw,42px) var(--script);color:var(--brand);flex:1;text-align:center;text-transform:none;margin:0}
.monthbar .acts{display:flex;gap:8px}.monthbar{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.monthbar .mnav{flex:1 1 100%}
input.plain{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:8px 0;font:400 20px var(--display);width:100%}input.plain.big{font-size:28px}
.obj{padding:8px 0;border-bottom:1px solid var(--line)}.objh{display:flex;align-items:center}.obj input[type=range]{width:100%;accent-color:var(--brand-2);padding:0;border:0}.obj small{color:var(--muted)}
.nums{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nums div{background:var(--soft);border-radius:14px;padding:12px}.nums b{display:block;font:500 30px/1.1 var(--display);color:var(--brand)}.nums small{color:var(--muted);font-size:12px}
.ht{display:grid;grid-template-columns:minmax(120px,1fr) repeat(7,36px);gap:8px 6px;align-items:center;overflow-x:auto}.ht>small{text-align:center;font:700 10px var(--body);color:var(--muted)}
.hn{font-size:14px;font-weight:600}.hn small{display:block;color:var(--muted);font-weight:600;font-size:11px}
.hc{width:32px;height:32px;padding:0;border-radius:50%;border:2px solid var(--line);background:transparent;justify-self:center}.hc.on{background:var(--brand-2);border-color:color-mix(in srgb,var(--brand-2) 60%,#5F6B57)}.hc.today{box-shadow:0 0 0 2px var(--brand) inset}.hc:disabled{opacity:.3}
.li{display:flex;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.li span{flex:1}
.num{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line)}.num span{font:500 18px var(--display);color:var(--muted)}.num input{border:0;background:transparent;padding:10px 0}
.hist{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0}.hist span{font-size:20px}.hist b{font:500 16px var(--display);min-width:150px}.hist small{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h3s{font:400 22px var(--display);margin:0 0 12px}
.tplg{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.tplg button{flex-direction:column;align-items:flex-start;text-align:left;padding:16px;border:0;border-radius:16px;min-height:96px;gap:4px}
.tplg b{font:500 18px var(--display)}.tplg small{color:var(--muted);font-weight:600}.tplg .c0{background:#F2E4E2}.tplg .c1{background:#F4EFD9}.tplg .c2{background:#ECE7F4}.tplg .c3{background:#E5EBE0}
.vb{columns:3 200px;column-gap:12px}.vbc{break-inside:avoid;margin-bottom:12px;border-radius:18px;padding:26px 18px;min-height:120px;display:grid;place-items:center;text-align:center;position:relative;font-size:22px;overflow:hidden}
.vbc img{width:calc(100% + 36px);margin:-26px -18px;display:block}.vbc .x{position:absolute;top:6px;right:6px;background:var(--paper);border-radius:50%;width:28px;height:28px;padding:0;opacity:.8}
.dsg{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.dsg button{flex-direction:column;align-items:flex-start;text-align:left;padding:10px;border-radius:14px;gap:2px;min-height:84px;background:var(--paper)}
.dsg b{font:500 20px var(--display);color:var(--brand)}.dsg small{font-size:11px;color:var(--muted);font-weight:600;line-height:1.3}.dsg .on{background:var(--soft);border-color:var(--brand-2)}.dsg .on b::after{content:" ✓"}.dsg .today{box-shadow:0 0 0 2px var(--brand) inset}.dsg button:disabled{opacity:.45}
.cal{align-content:start}.addrow{flex-wrap:wrap}.addrow input{flex:1 1 160px}
@media (max-width:900px){.tabbar button{flex:0 0 auto}}
@media (max-width:560px){.ht{grid-template-columns:minmax(84px,1fr) repeat(7,26px);gap:8px 4px}.hc{width:26px;height:26px}.hn{font-size:13px}.hist b{min-width:0}.hist{flex-wrap:wrap}}
.savebar{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 12px 12px 18px;background:var(--paper);border:1px solid var(--line);border-radius:999px;box-shadow:0 8px 24px rgba(55,50,46,.12)}.savebar .muted{font-size:13px}.savebar.dirty{border-color:var(--brand)}.savebar.dirty .muted{color:var(--brand);font-weight:700}
@media (max-width:900px){.savebar{bottom:calc(76px + env(safe-area-inset-bottom))}}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.slot{border:1px solid var(--line);border-radius:16px;padding:12px;min-width:0;display:flex;flex-direction:column;gap:8px}
.slot strong{font-size:14px}.slot small{color:var(--muted);font-size:12px;margin-top:-6px}
.slot .pv{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;background:var(--soft)}
.slot input[type=file]{font-size:13px}
.slot .rep{font-size:12px;padding:6px 10px;align-self:flex-start}
.ed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;align-items:start}
.edl{display:flex;flex-direction:column;gap:14px;min-width:0}
.esec{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 12px;border:1px solid var(--line);border-radius:14px;margin-top:8px;background:var(--paper);cursor:pointer}
.esec.on{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 18%,transparent)}
.esec .nm{flex:1;font-weight:700;font-size:14px;min-width:0}.esec .nm small{display:block;font-weight:600;color:var(--muted);font-size:12px}
.esec.off .nm{opacity:.45;text-decoration:line-through}
.esec button{padding:6px 9px;font-size:14px;border-radius:10px;background:transparent;border:1px solid var(--line);min-width:34px}
.esec button:disabled{opacity:.3}
.edp{position:sticky;top:14px;min-width:0}
.edtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:700;font-size:13px;color:var(--muted)}
.edsz button{padding:6px 10px;font-size:12px;border-radius:999px;background:transparent;border:1px solid var(--line);margin-left:4px}.edsz button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.edfw{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;height:calc(100dvh - 190px);min-height:460px;display:flex;justify-content:center}
.edfw iframe{border:0;width:100%;height:100%;transition:width .25s}
.edfw.tm iframe{width:390px;max-width:100%}
.edc label small{color:var(--muted);font-weight:600}
@media (max-width:900px){.ed{grid-template-columns:1fr}.edp{position:static}.edfw{height:540px}.slots{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.slots{grid-template-columns:1fr}.edsz{display:none}}
.mb{border:1px solid var(--line);border-radius:16px;background:var(--paper);padding:12px 14px}
.mb summary{list-style:none;display:flex;gap:12px;align-items:center;cursor:pointer}.mb summary::-webkit-details-marker{display:none}
.mb .av{width:42px;height:42px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font:600 18px var(--display);color:var(--brand);flex:none}
.mb .tx{flex:1;min-width:0}.mb .tx strong{display:block}.mb .tx small{color:var(--muted);font-size:13px}
.mb .tg{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--soft);margin:4px 4px 0 0}.mb .tg.novo{background:var(--brand);color:#fff}.mb .tg.eq{background:var(--brand-2)}
.mb .ed{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:block}
.mb .ed .row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:700px){.mb .ed .row3{grid-template-columns:1fr}}

/* Hestya e encomendas */
.cat{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.cat:last-child{border-bottom:0}
.cat img,.cat .cv{width:44px;height:58px;border-radius:8px;object-fit:cover;background:var(--soft);flex:none;display:grid;place-items:center;font-size:11px;color:var(--muted)}
.cat .tx{flex:1;min-width:0}.cat .tx input{padding:8px 10px}.cat .tx small{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat button{padding:8px 10px;font-size:13px}
.enit{width:100%;border-collapse:collapse;font-size:14px;margin:6px 0}.enit th{font-size:11px;text-align:left;color:var(--muted);font-weight:700;padding:4px}.enit td{padding:4px;vertical-align:middle}
.enit input{padding:8px;min-width:0}.enit .n{width:84px}.enit .q{width:56px}
.tg.st-nova{background:var(--brand)!important;color:#fff}.tg.st-paga,.tg.st-entregue{background:var(--brand-2)!important}.tg.st-cancelada{opacity:.6}
.entot{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.entot>div{flex:1;min-width:120px}
@media (max-width:700px){.enit .nm{display:none}}

/* redes sociais (painel) */
.redesf{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 14px}
.redesf label{display:flex;align-items:center;gap:8px}.redesf label svg{width:18px;height:18px;color:var(--rc)}
.redes{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.rede{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:background .15s,color .15s,transform .15s}
.rede:hover,.rede:focus-visible{background:var(--rc);border-color:var(--rc);color:#fff;transform:translateY(-1px)}
