/* =====================================================================
   Sistema Estelar — estilo. Porte integral do CSS do protótipo
   (painel-estelar.jsx), com acréscimos marcados na seção "versão web".
   As fontes (Archivo, IBM Plex Mono, Source Serif 4) vêm do index.html.
   ===================================================================== */
.ep{--night:#14233A;--night-t:#C6D1DF;--night-m:#8394AA;--bg:#F5F6F8;--panel:#FFFFFF;--col:#EBEDF1;--ink:#1B2430;--ink2:#464C55;--muted:#6C727C;--line:#E2E5EA;--line2:#CCD1D8;--sky:#2E6FA8;--sky-d:#255C8C;--sky-s:#E3EDF7;--ochre:#2E6FA8;--ochre-s:#E3EDF7;--gold:#BBD6EE;--on-gold:#123A5E;--guest:#9CC3E8;--late:#B3402E;--late-s:#F8E3DF;--ok:#2E7A52;--ok-s:#DFF0E6;
font-family:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;min-height:100vh}
.ep *,.ep *::before,.ep *::after{box-sizing:border-box}
:where(.ep) button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0;text-align:inherit}
:where(.ep) :is(input,textarea,select){font:inherit;color:inherit}
:where(.ep) a{color:var(--sky);text-decoration:underline;text-underline-offset:2px}
.ep :focus-visible{outline:2px solid var(--focus,var(--sky));outline-offset:2px}
:where(.ep) :is(h1,h2,h3,p){margin:0}
.mono{font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace}
.spin{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ep *{transition:none!important;animation:none!important}}

.app{display:grid;grid-template-columns:264px minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden}
.main{display:flex;flex-direction:column;min-width:0;height:100vh;height:100dvh}
.content{flex:1;overflow:auto;padding:28px 32px 56px}
.scrim{display:none}
.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted)}

/* barra lateral */
.sidebar{background:var(--night);color:var(--night-t);display:flex;flex-direction:column;overflow-y:auto;padding:16px 12px 12px;gap:2px}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 18px}
.brand-mark{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--brand-2),var(--night) 82%);border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:var(--gold);font-size:15px;flex:none}
.brand-name{font-weight:760;font-stretch:120%;color:#fff;font-size:16px;line-height:1.1}
.brand-sub{font-size:12px;color:var(--night-m)}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;color:var(--night-t);font-weight:500;position:relative}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.active{background:rgba(255,255,255,.1);color:#fff}
.nav-item.active::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand-2,#6FA8DC)}
.nav-badge{margin-left:auto;min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:var(--gold);color:var(--on-gold);font-size:12px;font-weight:700;display:grid;place-items:center}
.group{margin-top:16px}
.group-head{display:flex;align-items:center;gap:6px;padding:4px 4px 4px 8px;color:var(--night-m);font-size:12.5px;font-weight:600}
.group-head .tog{display:flex;align-items:center;gap:6px;flex:1;padding:2px;border-radius:6px}
.group-head .tog:hover{color:#fff}
.group-add{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;color:var(--night-m)}
.group-add:hover{background:rgba(255,255,255,.08);color:#fff}
.fitem{display:flex;align-items:center;border-radius:8px;position:relative}
.fitem:hover{background:rgba(255,255,255,.06)}
.fitem.active{background:rgba(255,255,255,.1)}
.fitem-main{flex:1;display:flex;align-items:center;gap:9px;padding:7px 4px 7px 10px;min-width:0;color:var(--night-t)}
.fitem.active .fitem-main,.fitem:hover .fitem-main{color:#fff}
.fitem-emoji{width:20px;text-align:center;flex:none}
.fitem-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fitem-count{margin-left:auto;font-size:12px;color:var(--night-m);padding-right:2px}
.fitem-more{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;color:var(--night-m);opacity:0;margin-right:4px}
.fitem:hover .fitem-more,.fitem-more:focus-visible,.pop-wrap.is-open .fitem-more{opacity:1}
.fitem-more:hover{background:rgba(255,255,255,.1);color:#fff}
.side-empty{padding:4px 12px;font-size:12.5px;color:var(--night-m)}
.side-bottom{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(255,255,255,.08)}
.me-pop{display:flex;width:100%}
.me-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;color:#fff;text-align:left}
.me-btn:hover{background:rgba(255,255,255,.06)}
.me-name{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-btn small{display:block;color:var(--night-m);font-size:12px}

/* topo */
.topbar{height:62px;flex:none;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid var(--line);background:var(--bg);position:relative;z-index:20}
.search{position:relative;flex:1;max-width:460px;min-width:0}
.search-box{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);color:var(--muted)}
.search-box:focus-within{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-s)}
.search-box input{border:0;outline:0;flex:1;background:transparent;color:var(--ink);min-width:0}
.kbd{font-size:11px;border:1px solid var(--line2);border-radius:5px;padding:0 6px;color:var(--muted)}
.search-res{position:absolute;top:44px;left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(20,35,58,.14);padding:6px;z-index:40}
.sres{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px}
.sres.hl{background:var(--sky-s)}
.sres-t{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sres-s{font-size:12px;color:var(--muted)}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.sync{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);padding:6px 8px;border-radius:8px}
.sync:hover{background:rgba(27,36,48,.05)}
.sync.err{color:var(--late)}

/* botões e campos */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:9px;font-weight:600;border:1px solid var(--line2);background:var(--panel);color:var(--ink);white-space:nowrap}
.btn:hover{border-color:#AEB8C5;background:#FAFBFC}
.btn-primary{background:var(--sky);border-color:var(--sky);color:#fff}
.btn-primary:hover{background:var(--sky-d);border-color:var(--sky-d)}
.btn-danger{color:var(--late);border-color:#E6C2BB}
.btn-danger:hover{background:var(--late-s);border-color:var(--late)}
.btn-ghost{border-color:transparent;background:transparent}
.btn-ghost:hover{background:rgba(27,36,48,.05);border-color:transparent}
.btn-sm{height:30px;padding:0 10px;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.icon-btn{width:36px;height:36px;border-radius:9px;display:inline-grid;place-items:center;color:var(--ink2);position:relative;flex:none;text-decoration:none!important}
.icon-btn:hover{background:rgba(27,36,48,.06);color:var(--ink)}
.icon-btn.sm{width:28px;height:28px;border-radius:7px}
.bell-dot{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--late);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;border:2px solid var(--bg)}
.link-btn{color:var(--sky);font-weight:600;font-size:13px}
.link-btn:hover{text-decoration:underline}
.only-mobile{display:none!important}
.input{height:36px;border:1px solid var(--line2);border-radius:9px;background:var(--panel);padding:0 11px;width:100%;outline:0}
.input:focus{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-s)}
textarea.input{height:auto;padding:9px 11px;resize:vertical;min-height:72px;line-height:1.5}
.select{height:34px;border:1px solid var(--line2);border-radius:9px;background:var(--panel);padding:0 10px;outline:0;max-width:220px}
.select:focus{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-s)}
.checkline{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink2);cursor:pointer}
.checkline input{width:16px;height:16px;accent-color:var(--sky)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label,.field .lbl{font-weight:600;font-size:13px;color:var(--ink2)}
.hint{font-size:12.5px;color:var(--muted);font-weight:400}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.sw{width:28px;height:28px;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.sw.on{border-color:var(--ink);box-shadow:inset 0 0 0 2px #fff}
.emojis{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.emo{height:34px;border-radius:8px;font-size:18px;display:grid;place-items:center}
.emo:hover{background:var(--bg)}
.emo.on{background:var(--sky-s);box-shadow:inset 0 0 0 1.5px var(--sky)}
.pick-list{display:flex;flex-wrap:wrap;gap:6px}
.pick{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:15px;border:1px solid var(--line2);font-size:13px;background:#fff}
.pick:hover{border-color:#AEB8C5}
.pick.on{background:var(--sky-s);border-color:var(--sky);color:var(--sky-d);font-weight:600}
.pick-sub{font-size:12px;color:var(--muted);margin:6px 0 2px}

/* popover e menus */
.pop-wrap{position:relative;display:inline-flex}
.pop{position:absolute;top:calc(100% + 6px);z-index:70;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 36px rgba(20,35,58,.18);padding:6px;max-height:420px;overflow:auto;font-size:14px}
.pop-left{left:0}.pop-right{right:0}
.pop-top{top:auto;bottom:calc(100% + 6px)}
.menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border-radius:8px;font-size:13.5px;text-align:left}
.menu-item:hover{background:var(--sky-s)}
.menu-item.danger{color:var(--late)}
.menu-item.danger:hover{background:var(--late-s)}
.menu-item .tick{margin-left:auto;color:var(--sky)}
.menu-item:disabled{opacity:.4;cursor:not-allowed;background:none}
.menu-sep{height:1px;background:var(--line);margin:5px 4px}
.menu-label{font-size:12px;color:var(--muted);padding:6px 10px 2px;font-weight:600}

/* cabeçalhos de página */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.page-title{font-size:30px;line-height:1.1;font-weight:760;font-stretch:120%;letter-spacing:-.01em;display:flex;align-items:center;gap:12px}
.page-sub{color:var(--muted);margin-top:7px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.page-emoji{font-size:28px;width:44px;height:44px;border-radius:10px;display:grid;place-items:center}
.page-emoji:hover{background:var(--col)}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:11px;font-size:12px;font-weight:600;background:var(--col);color:var(--ink2)}
.section-title{font-size:16px;font-weight:720;font-stretch:112%;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.count{font-weight:500;color:var(--muted);font-stretch:100%;font-size:13.5px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.empty{text-align:center;padding:36px 16px;color:var(--muted)}
.empty-ic{width:44px;height:44px;border-radius:12px;background:var(--col);display:grid;place-items:center;margin:0 auto 10px;color:var(--ink2)}
.empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}

/* chips e avatares */
.av{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex:none;letter-spacing:.02em;border:2px solid var(--panel);line-height:1}
.av-stack{display:inline-flex;align-items:center;flex:none}
.av-stack .av+.av{margin-left:-7px}
.av-more{background:var(--col);color:var(--ink2)}
.due{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:600;background:var(--col);color:var(--ink2);white-space:nowrap;flex:none}
.due .mono{font-weight:600}
.due-week{background:var(--sky-s);color:var(--sky-d)}
.due-soon{background:var(--ochre-s);color:var(--ochre)}
.due-today{background:var(--gold);color:var(--on-gold)}
.due-late{background:var(--late-s);color:var(--late)}
.due-done{background:var(--ok-s);color:var(--ok)}
.meta{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12.5px}
.meta.ok{color:var(--ok)}
.fmini{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink2);white-space:nowrap}
.lchip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font-size:12px;color:var(--ink2);white-space:nowrap}
.prio{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600}
.col-dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.fdot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}
.rich{white-space:pre-wrap;word-break:break-word}
.mention{color:var(--sky-d);background:var(--sky-s);border-radius:4px;padding:0 3px;font-weight:600}

/* início */
.home-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px}
.hero{background:var(--night);color:#fff;border-radius:16px;padding:20px 22px 14px;position:relative;overflow:hidden;background-image:radial-gradient(1px 1px at 12% 18%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 68% 12%,rgba(255,255,255,.35),transparent),radial-gradient(1.5px 1.5px at 88% 40%,rgba(255,255,255,.45),transparent),radial-gradient(1px 1px at 40% 8%,rgba(255,255,255,.3),transparent)}
.hero-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.hero-title{font-size:18px;font-weight:740;font-stretch:120%}
.hero-sub{color:var(--night-m);font-size:13px;margin-top:3px}
.hero-link{color:var(--brand-2);font-weight:600;font-size:13px;white-space:nowrap}
.hero-link:hover{text-decoration:underline}
.hero-empty{color:var(--night-t);padding:18px 0 10px}
.cd-row{display:grid;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 8px;border-top:1px solid rgba(255,255,255,.08);width:100%;text-align:left;border-radius:8px}
.cd-row:hover{background:rgba(255,255,255,.05)}
.cd-t{font-family:'IBM Plex Mono',monospace;font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--brand-2);line-height:1}
.cd-t.today,.cd-t.soon{color:#fff}
.cd-t.late{color:#F2A493}
.cd-title{display:block;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cd-meta{display:flex;gap:10px;align-items:center;color:var(--night-m);font-size:12.5px;margin-top:2px;flex-wrap:wrap}
.cd-date{color:var(--night-t);font-size:13px;white-space:nowrap}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;text-align:left;display:block;width:100%}
.stat:hover{border-color:var(--line2)}
.stat-n{font-size:30px;font-weight:760;font-stretch:120%;line-height:1}
.stat-l{color:var(--muted);font-size:13px;margin-top:8px;line-height:1.35}
.stat.late .stat-n{color:var(--late)}
.stat.today .stat-n{color:var(--sky)}
.stat.ok .stat-n{color:var(--ok)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.fcard{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:12px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:8px}
.fcard:hover{border-color:var(--line2);border-top-color:var(--c)}
.fcard-name{font-weight:700;display:flex;gap:8px;align-items:center}
.fcard-sub{font-size:12.5px;color:var(--muted)}
.fcard-new{border:1.5px dashed var(--line2);align-items:center;justify-content:center;color:var(--muted);font-weight:600;flex-direction:row;min-height:110px}
.fcard-new:hover{color:var(--sky);border-color:var(--sky)}
.stackbar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--col)}
.stackbar i{display:block;height:100%}
.feed-item{display:flex;gap:10px;padding:9px 0;font-size:13.5px}
.feed-item+.feed-item{border-top:1px solid var(--line)}
.feed-text{flex:1;min-width:0}
.feed-text .card-link{font-weight:600;color:var(--sky-d)}
.feed-text .card-link:hover{text-decoration:underline}
.feed-time{color:var(--muted);font-size:12px}

/* linhas de tarefa */
.trow{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line)}
.trow+.trow{margin-top:6px}
.trow:hover{border-color:var(--line2)}
.check{width:20px;height:20px;border-radius:6px;border:1.5px solid #97A1AF;display:grid;place-items:center;flex:none;color:#fff;background:#fff}
.check:hover{border-color:var(--ok)}
.check.on{background:var(--ok);border-color:var(--ok)}
.trow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-align:left}
.trow-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trow.is-done .trow-title{text-decoration:line-through;color:var(--muted)}
.trow-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.progress{height:6px;border-radius:3px;background:var(--col);overflow:hidden;flex:1;max-width:220px;min-width:60px}
.progress>i{display:block;height:100%;background:var(--focus,var(--sky));border-radius:3px;transition:width .25s}
.progress.full>i{background:var(--ok)}
.progress.big{height:9px;max-width:380px}
.block{margin-top:22px}
.block-head{display:flex;align-items:center;gap:9px;font-weight:700;margin-bottom:9px}

/* quadro */
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.seg{display:inline-flex;background:var(--col);border-radius:10px;padding:3px}
.seg button{height:30px;padding:0 12px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--ink2)}
.seg button.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(20,35,58,.14)}
.board{display:flex;gap:14px;overflow-x:auto;align-items:flex-start;padding-bottom:12px}
.column{flex:0 0 292px;background:var(--col);border-radius:12px;padding:10px;display:flex;flex-direction:column;max-height:calc(100vh - 250px)}
.column.over{box-shadow:inset 0 0 0 2px var(--sky)}
.col-head{display:flex;align-items:center;gap:8px;padding:2px 2px 10px 4px;font-weight:700}
.col-head .count{margin-right:auto}
.col-body{overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:30px;padding:2px}
.tile{background:var(--panel);border-radius:9px;padding:11px 12px;border:1px solid var(--line);cursor:pointer;position:relative;box-shadow:0 1px 1px rgba(20,35,58,.04)}
.tile:hover{border-color:var(--line2);box-shadow:0 3px 10px rgba(20,35,58,.08)}
.tile.dragging{opacity:.4}
.tile.drop-before::before{content:"";position:absolute;left:4px;right:4px;top:-6px;height:3px;border-radius:2px;background:var(--sky)}
.tile-title{font-weight:600;line-height:1.35;word-break:break-word}
.tile.is-done .tile-title{color:var(--muted);text-decoration:line-through}
.tile-links{display:flex;flex-wrap:wrap;gap:4px;align-items:center;color:var(--muted);margin-bottom:7px}
.tile-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}
.badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.drop-end{height:3px;border-radius:2px;background:var(--sky);margin:0 4px}
.quick-btn{display:flex;align-items:center;gap:6px;width:100%;padding:8px;border-radius:8px;color:var(--muted);font-weight:500}
.quick-btn:hover{background:rgba(27,36,48,.06);color:var(--ink)}
.quick{margin-top:8px}
.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-weight:600;color:var(--muted);font-size:12.5px;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover{background:#F8FAFC}
.status-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:12px;font-size:12.5px;font-weight:600;background:var(--bg);border:1px solid var(--line);white-space:nowrap}

/* calendário */
.cal-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.cal-label{font-size:20px;font-weight:720;font-stretch:115%;min-width:200px;margin-left:6px}
.cal-filters{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--line);gap:1px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mhead{background:var(--bg);padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--muted)}
.mcell{background:var(--panel);min-height:112px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}
.mcell.out{background:#F8F9FB}
.mcell.out .mday{color:#A3ABB6}
.mcell-top{display:flex;align-items:center;justify-content:space-between}
.mday{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:600;font-family:'IBM Plex Mono',monospace}
.mday:hover{background:var(--col)}
.mcell.today .mday{background:var(--focus,var(--sky));color:#fff}
.madd{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--muted);opacity:0}
.mcell:hover .madd,.madd:focus-visible{opacity:1}
.madd:hover{background:var(--col)}
.cchip{display:block;width:100%;text-align:left;font-size:12px;line-height:1.3;padding:3px 6px 3px 7px;border-radius:5px;background:var(--c,#999);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.cchip:hover{background:var(--sky-s)}
.cchip.done{color:var(--muted);text-decoration:line-through}
.cchip.late{box-shadow:inset 0 0 0 2px var(--late)}
.more{font-size:12px;color:var(--sky);font-weight:600;text-align:left;padding:2px 6px}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.wcol{background:var(--col);border-radius:12px;padding:8px;min-height:380px;display:flex;flex-direction:column;gap:6px;min-width:0}
.wcol.today{box-shadow:inset 0 0 0 2px var(--sky)}
.whead{display:flex;align-items:baseline;justify-content:space-between;padding:4px 4px 6px}
.whead b{font-size:20px;font-weight:600;font-family:'IBM Plex Mono',monospace}
.whead span{color:var(--muted);font-size:13px}
.wcard{background:color-mix(in srgb,var(--c) 14%,#fff);border-radius:8px;padding:8px 9px;border:1px solid color-mix(in srgb,var(--c) 30%,#fff);border-left:4px solid var(--c);text-align:left;width:100%;display:flex;flex-direction:column;gap:6px}
.wcard:hover{border-color:var(--line2);border-left-color:var(--c)}
.wcard-t{font-weight:600;font-size:13px;line-height:1.3;word-break:break-word}
.wcard.done .wcard-t{text-decoration:line-through;color:var(--muted)}
.wcard-f{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}
.wcard-f .fmini{overflow:hidden;text-overflow:ellipsis}
.wnone{font-size:12.5px;color:var(--muted);padding:2px 4px}
.year{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ymonth{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}
.ymonth-t{font-weight:700;font-stretch:112%;margin-bottom:8px;display:flex;justify-content:space-between;align-items:baseline;width:100%;text-align:left}
.ymonth-t:hover{color:var(--sky)}
.ymonth-t span{font-weight:500;color:var(--muted);font-size:12px;font-stretch:100%}
.ygrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.ywd{font-size:10.5px;color:var(--muted);text-align:center}
.yday{aspect-ratio:1;border-radius:5px;font-size:10.5px;display:grid;place-items:center;color:var(--ink2);font-family:'IBM Plex Mono',monospace}
.yday:hover{outline:1.5px solid var(--sky)}
.yday.today{outline:2px solid var(--sky)}
.yday.lateday{box-shadow:inset 0 -3px 0 var(--late)}
.cal-legend{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12.5px;margin-top:12px}

/* equipe */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;text-align:left;display:flex;flex-direction:column;gap:14px}
.pcard:hover{border-color:var(--line2)}
.pcard-top{display:flex;gap:12px;align-items:center}
.pcard-name{font-weight:700;font-size:15px}
.pcard-role{font-size:13px;color:var(--muted)}
.pstats{display:flex;gap:18px;font-size:12.5px;color:var(--muted)}
.pstats b{display:block;font-size:19px;color:var(--ink);font-stretch:118%}
.pstats .late b{color:var(--late)}
.profile-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.contact{display:inline-flex;align-items:center;gap:5px;color:var(--ink2);font-size:13.5px}

/* modais */
.overlay{position:fixed;inset:0;background:rgba(15,25,40,.45);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto}
.modal{background:var(--panel);width:100%;border-radius:16px;box-shadow:0 24px 60px rgba(15,25,40,.3);outline:0;position:relative;animation:min .16s ease-out}
@keyframes min{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.modal-head{display:flex;align-items:center;gap:8px;padding:14px 16px 0 22px}
.modal-body{padding:14px 22px 24px}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line);flex-wrap:wrap}
.modal-title{font-size:19px;font-weight:720;font-stretch:115%;flex:1}
.edit{resize:none;overflow:hidden;display:block}
.cm-title{width:100%;border:0;outline:0;font-size:26px;font-weight:740;font-stretch:115%;line-height:1.2;padding:4px 6px;margin-left:-6px;background:transparent;border-radius:6px}
.cm-title:hover{background:#F8FAFC}
.cm-title:focus{background:#F3F6FA}
.props{display:grid;grid-template-columns:136px minmax(0,1fr);row-gap:4px;column-gap:10px;margin:14px 0 4px}
.prop-l{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13.5px;min-height:34px}
.prop-v{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:34px}
.pbtn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px;border-radius:7px;font-size:13.5px;color:var(--ink)}
.pbtn:hover{background:var(--bg)}
.pbtn.muted{color:var(--muted)}
.person-chip,.fchip{display:inline-flex;align-items:center;gap:6px;height:28px;border-radius:14px;background:var(--bg);border:1px solid var(--line);font-size:13px}
.person-chip{padding:0 4px 0 2px}
.fchip{padding:0 6px 0 10px}
.chip-x{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.chip-x:hover{background:var(--line);color:var(--ink)}
.date-input{height:30px;border:1px solid var(--line2);border-radius:7px;padding:0 8px;background:var(--panel);outline:0}
.date-input:focus{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-s)}
.alert-note{display:flex;gap:8px;align-items:flex-start;background:var(--sky-s);color:var(--sky-d);border-radius:9px;padding:8px 11px;font-size:12.5px;margin-top:8px}
.cm-section{margin-top:24px}
.cm-sec-head{display:flex;align-items:center;gap:8px;font-weight:720;font-stretch:110%;font-size:15px;margin-bottom:10px;flex-wrap:wrap}
.grow{flex:1}
.desc{width:100%;border:1px solid transparent;border-radius:9px;padding:9px 11px;outline:0;min-height:74px;line-height:1.55;background:#F6F8FB}
.desc:hover{border-color:var(--line)}
.desc:focus{border-color:var(--sky);background:#fff;box-shadow:0 0 0 3px var(--sky-s)}
.ck-item{display:flex;align-items:center;gap:10px;padding:4px 6px;border-radius:8px}
.ck-item:hover{background:#F6F8FB}
.ck-text{flex:1;border:0;outline:0;background:transparent;padding:4px 5px;border-radius:5px;line-height:1.4;min-width:0}
.ck-text:focus{background:#fff;box-shadow:0 0 0 2px var(--sky-s)}
.ck-item.done .ck-text{text-decoration:line-through;color:var(--muted)}
.ck-item .icon-btn{opacity:0}
.ck-item:hover .icon-btn,.ck-item .icon-btn:focus-visible{opacity:1}
.att{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px}
.att+.att{margin-top:6px}
.att-ic{width:32px;height:32px;border-radius:8px;background:var(--sky-s);color:var(--sky);display:grid;place-items:center;flex:none}
.att-ic.file{background:var(--col);color:var(--ink2)}
.att-main{flex:1;min-width:0}
.att-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:var(--ink)!important;text-decoration:none!important}
a.att-name:hover{color:var(--sky)!important;text-decoration:underline!important}
.att-sub{font-size:12px;color:var(--muted)}
.att-add{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.composer{display:flex;gap:10px;align-items:flex-start}
.composer-box{flex:1;border:1px solid var(--line2);border-radius:10px;background:#fff;min-width:0}
.composer-box:focus-within{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-s)}
.composer-box textarea{width:100%;border:0;outline:0;resize:none;padding:10px 12px 4px;min-height:48px;background:transparent;line-height:1.5;display:block}
.composer-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px 8px 12px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.mention-btns{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.mention-btns button{height:24px;padding:0 8px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:12px;color:var(--ink2)}
.mention-btns button:hover{border-color:var(--sky);color:var(--sky-d)}
.comment{display:flex;gap:10px;padding:12px 0}
.comment+.comment{border-top:1px solid var(--line)}
.comment-body{flex:1;min-width:0}
.comment-head{display:flex;align-items:baseline;gap:8px;font-size:13px}
.comment-head b{font-weight:700}
.comment-head span{color:var(--muted);font-size:12px}
.comment-del{margin-left:auto;color:var(--muted);font-size:12px}
.comment-del:hover{color:var(--late);text-decoration:underline}
.comment-text{margin-top:3px}
.hist{font-size:12.5px;color:var(--muted);padding:5px 0;display:flex;gap:8px}
.hist b{color:var(--ink2);font-weight:600}

/* entrada, avisos, configurações */
.gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--night);background-image:radial-gradient(1px 1px at 15% 20%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 80% 30%,rgba(255,255,255,.4),transparent),radial-gradient(1.5px 1.5px at 60% 80%,rgba(255,255,255,.45),transparent),radial-gradient(1px 1px at 30% 70%,rgba(255,255,255,.3),transparent)}
.gate-card{background:var(--panel);border-radius:18px;width:100%;max-width:460px;padding:28px}
.gate-title{font-size:26px;font-weight:760;font-stretch:120%;margin:14px 0 4px!important}
.gate-user{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;text-align:left}
.gate-user:hover{border-color:var(--sky);background:#F7FAFD}
.gate-user+.gate-user{margin-top:8px}
.toasts{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;align-items:center;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}
.toast{background:var(--night);color:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 10px 30px rgba(15,25,40,.3);font-size:13.5px;display:flex;align-items:center;gap:12px;animation:min .18s ease-out;pointer-events:auto}
.toast.error{background:var(--late)}
.toast button{color:var(--brand-2);font-weight:700}
.nrow{display:flex;gap:10px;width:100%;padding:9px 8px;border-radius:9px;text-align:left;align-items:flex-start}
.nrow:hover{background:var(--bg)}
.nrow.unread{background:#F3F7FC}
.nrow.unread:hover{background:var(--sky-s)}
.notif-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px 8px}
.nic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none}
.nic.late{background:var(--late-s);color:var(--late)}
.nic.today{background:var(--gold);color:var(--on-gold)}
.nic.soon{background:var(--ochre-s);color:var(--ochre)}
.nic.week{background:var(--sky-s);color:var(--sky)}
.nic.info{background:var(--col);color:var(--ink2)}
.nrow-h{display:block;font-weight:600;font-size:13px}
.nrow-t{display:block;font-size:13px;color:var(--ink2)}
.nrow-q{display:block;font-size:12.5px;color:var(--muted)}
.nrow-time{font-size:11.5px;color:var(--muted)}
.udot{width:8px;height:8px;border-radius:50%;background:var(--sky);margin-top:6px;flex:none}
.settings{display:grid;gap:18px;max-width:780px}
.set-row{display:flex;align-items:center;gap:8px;padding:7px 0;flex-wrap:wrap}
.set-row+.set-row{border-top:1px solid var(--line)}
.set-row .input{max-width:260px;height:34px}
.info{background:var(--sky-s);border-radius:12px;padding:14px 16px;color:var(--sky-d);font-size:13.5px;line-height:1.6}
.info p+p{margin-top:8px}

/* versão 2 */
.flogo{display:inline-grid;place-items:center;flex:none;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1px rgba(20,35,58,.12)}
.flogo img{width:100%;height:100%;object-fit:contain;padding:9%}
.flogo-txt{color:#fff;font-weight:760;box-shadow:none;letter-spacing:.01em;line-height:1;font-stretch:110%}
.brand-logo{display:grid;place-items:center;flex:none;background:#fff;border-radius:10px;overflow:hidden}
.brand-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.av-img{object-fit:cover;background:#fff}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto}
.tab{display:inline-flex;align-items:center;gap:7px;padding:10px 12px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--ink);border-bottom-color:var(--focus,var(--sky))}
.col-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.col-name-edit{flex:1;min-width:0;border:1px solid var(--sky);border-radius:6px;padding:2px 6px;font-weight:700;outline:0;background:#fff}
.col-add{flex:0 0 250px;border:1.5px dashed var(--line2);border-radius:12px;padding:10px}
.swatch-row{display:flex;gap:5px;flex-wrap:wrap;padding:2px 10px 8px}
.swatch-row .sw{width:20px;height:20px}
.th-sort{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--muted);white-space:nowrap}
.th-sort:hover,.th-sort.on{color:var(--ink)}
.tag.admin{background:var(--night);color:#fff}
.tag.owner{background:var(--ochre-s);color:var(--ochre)}
.owner-line{display:inline-flex;align-items:center;gap:6px}
.id-section{margin-top:28px}
.id-section:first-child{margin-top:4px}
.id-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.id-head .section-title{margin:0}
.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.logo-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}
.logo-prev{height:140px;display:grid;place-items:center;padding:18px}
.logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
.logo-prev.light{background:#fff;border-bottom:1px solid var(--line)}
.logo-prev.dark{background:#14233A}
.logo-prev.grid{background-color:#fff;background-image:linear-gradient(45deg,#E9ECF1 25%,transparent 25%),linear-gradient(-45deg,#E9ECF1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#E9ECF1 75%),linear-gradient(-45deg,transparent 75%,#E9ECF1 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;border-bottom:1px solid var(--line)}
.logo-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}
.logo-actions{display:flex;gap:2px;flex-wrap:wrap;align-items:center}
.bg-pick{display:inline-flex;gap:4px;margin-right:auto}
.bg-pick button{width:18px;height:18px;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.bg-pick button.on{outline:2px solid var(--sky);outline-offset:1px}
.upload-tile{border:1.5px dashed var(--line2);border-radius:12px;min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-weight:600;padding:12px;text-align:center}
.upload-tile:hover{border-color:var(--sky);color:var(--sky)}
.color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.color-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}
.color-block{height:86px;position:relative}
.color-block input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.color-body{padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.hex{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--ink2);display:flex;align-items:center;gap:4px}
.font-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.font-row+.font-row{margin-top:8px}
.font-prev{font-size:28px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.add-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.add-row .input{flex:1 1 150px;width:auto}
.color-input{width:44px;height:36px;border:1px solid var(--line2);border-radius:9px;padding:2px;background:#fff;cursor:pointer}
.inline-edit{border:0;background:transparent;outline:0;padding:2px 4px;margin-left:-4px;border-radius:5px;width:100%;font:inherit;color:inherit}
.inline-edit:hover{background:#F6F8FB}
.inline-edit:focus{background:#fff;box-shadow:0 0 0 2px var(--sky-s)}
.id-hero{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:14px;background:var(--panel);border:1px solid var(--line);margin-bottom:6px;flex-wrap:wrap}
.ev-row{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;text-align:left}
.ev-row:hover{border-color:var(--line2)}
.ev-row+.ev-row{margin-top:8px}
.ev-date{width:60px;flex:none;text-align:center;border-radius:10px;background:var(--gold);color:var(--on-gold);padding:6px 0 7px;line-height:1.1}
.ev-date b{display:block;font-family:'IBM Plex Mono',monospace;font-size:21px}
.ev-date span{font-size:12px;font-weight:600}
.ev-row.past .ev-date{background:var(--col);color:var(--ink2)}
.ev-name{font-weight:700;font-size:15px}
.ev-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:3px}
.ev-meta span{display:inline-flex;align-items:center;gap:5px}
.evchip{display:block;width:100%;text-align:left;font-size:12px;line-height:1.3;padding:3px 6px;border-radius:5px;background:var(--night);color:#fff;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.evchip:hover{filter:brightness(.96)}
.login-err{background:var(--late-s);color:var(--late);border-radius:9px;padding:9px 12px;font-size:13px;margin-bottom:14px}
.pass-wrap{position:relative}
.pass-wrap .input{padding-right:42px}
.pass-eye{position:absolute;right:4px;top:4px;width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:var(--muted)}
.pass-eye:hover{background:var(--bg);color:var(--ink)}
.access-list{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);border-radius:10px;padding:6px;max-height:280px;overflow:auto}
.access-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:13.5px}
.access-item:hover{background:var(--bg)}
.access-item input{width:16px;height:16px;accent-color:var(--sky);flex:none}
.access-sub{font-size:11.5px;color:var(--muted);font-weight:600;padding:6px 8px 2px}
.logo-upload{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lock-note{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--muted);margin-top:14px}
.gtable td{white-space:nowrap}
.gtable .late-n{color:var(--late);font-weight:700}
.gnum{font-weight:600}
.av-admin{background:var(--night);color:#fff}
.av-guest{background:var(--guest);color:var(--on-gold)}
.av-unknown{background:#98A2B3;color:#fff}
.ficon{background:var(--night);color:var(--brand-2);box-shadow:none}
.sidebar .ficon{background:rgba(255,255,255,.1)}
.icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.icon-pick{height:40px;border-radius:9px;display:grid;place-items:center;background:var(--bg);color:var(--ink2);border:1px solid var(--line)}
.icon-pick:hover{border-color:var(--line2);color:var(--ink)}
.icon-pick.on{background:var(--night);color:var(--brand-2);border-color:var(--night)}
.color-now-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.color-now{width:34px;height:34px;border-radius:9px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.msg{display:flex;gap:12px;width:100%;text-align:left;padding:14px 16px;border-radius:12px;background:var(--panel);border:1px solid var(--line);align-items:flex-start}
.msg+.msg{margin-top:8px}
.msg:hover{border-color:var(--line2)}
.msg.unread{background:#F3F7FC;border-color:#C9DBEE}
.msg-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.msg-head{font-size:14px;line-height:1.4}
.msg-head b{font-weight:700}
.msg-text{color:var(--ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.msg-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.page-sub .owner-line{margin-left:6px;font-size:12.5px}
.comment-act{display:inline-flex;align-items:center;gap:4px;color:var(--sky-d);font-size:12px;font-weight:600;margin-left:auto}
.comment-act:hover{text-decoration:underline}
.comment-act+.comment-del{margin-left:10px}
.thread+.thread{border-top:1px solid var(--line)}
.thread .comment+.comment{border-top:0}
.replies{margin:0 0 10px 40px;padding-left:12px;border-left:2px solid var(--line)}
.comment.reply{padding:8px 0}
.reply-box{display:flex;gap:8px;align-items:flex-start;padding:6px 0}
.reply-box .input{flex:1;min-height:0}
.msg-open{display:flex;flex-direction:column;gap:4px;text-align:left;width:100%}
.msg-meta .link-btn{font-size:12px}
.color-field{display:flex;flex-direction:column;gap:8px}
.hex-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hex-input{width:110px!important;flex:none;text-transform:uppercase}
.color-field.compact .hex-row{flex-wrap:nowrap}
.color-field.compact .hex-input{width:92px!important;height:30px}
.color-field.compact .color-now{width:26px;height:26px}
.color-field.compact .color-input{width:34px;height:30px}
.color-field.compact .swatch-row{padding:0}
.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.info-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.info-label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.info-label .inline-edit{text-transform:uppercase;letter-spacing:.03em;font-weight:700}
.info-value{width:100%;border:1px solid transparent;border-radius:8px;padding:6px 8px;margin-left:-8px;outline:0;min-height:36px;line-height:1.5;background:transparent;resize:none}
.info-value:hover{background:#F6F8FB}
.info-value:focus{background:#fff;border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-s)}
.info-read{line-height:1.5}
.idea-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:14px}
.idea{background:var(--sky-s);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.idea.new{background:var(--panel);border-color:var(--line);max-width:640px}
.idea.converted{background:var(--panel);opacity:.8}
.idea-title{border:0;outline:0;background:transparent;font-weight:700;font-size:15px;padding:3px 6px;margin-left:-6px;border-radius:6px;width:100%;resize:none}
.idea-text{border:0;outline:0;background:transparent;padding:4px 6px;margin-left:-6px;border-radius:6px;width:100%;line-height:1.5;resize:none;min-height:54px;color:var(--ink2)}
.idea-title:focus,.idea-text:focus{background:rgba(255,255,255,.8);box-shadow:0 0 0 2px var(--sky-s)}
.idea-foot{display:flex;align-items:center;gap:6px;margin-top:4px}
.org{overflow-x:auto;padding:6px 0 18px}
.org ul{display:flex;justify-content:center;margin:0;padding:22px 0 0;position:relative}
.org>ul{padding-top:0}
.org li{list-style:none;position:relative;padding:22px 8px 0;display:flex;flex-direction:column;align-items:center}
.org li::before,.org li::after{content:"";position:absolute;top:0;right:50%;width:50%;height:22px;border-top:1.5px solid var(--line2)}
.org li::after{right:auto;left:50%;border-left:1.5px solid var(--line2)}
.org li:only-child::before,.org li:only-child::after{display:none}
.org li:only-child{padding-top:22px}
.org li:first-child::before,.org li:last-child::after{border:0}
.org li:last-child::before{border-right:1.5px solid var(--line2);border-radius:0 7px 0 0}
.org li:first-child::after{border-radius:7px 0 0 0}
.org ul ul::before{content:"";position:absolute;top:0;left:50%;height:22px;border-left:1.5px solid var(--line2)}
.org li:only-child>.org-node::before{content:"";position:absolute;top:-22px;left:50%;height:22px;border-left:1.5px solid var(--line2)}
.org>ul>li:only-child{padding-top:0}
.org>ul>li:only-child>.org-node::before{display:none}
.org-node{position:relative;background:var(--panel);border:1.5px solid var(--line2);border-radius:12px;min-width:132px;max-width:190px;padding:10px 12px 12px;display:flex;flex-direction:column;align-items:center;gap:6px}
.org-node.root{background:var(--night);border-color:var(--night);color:#fff}
.org-node.group{background:var(--bg)}
.org-node.future{border-style:dashed;background:#FAFBFC}
.org-node.future .org-name{color:var(--ink2)}
.org-main{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.org-name{font-weight:700;font-size:13.5px;line-height:1.25}
.org-meta{display:flex;align-items:center;gap:6px}
.org-future{font-size:11px;font-weight:700;color:var(--sky);text-transform:uppercase;letter-spacing:.04em}
.org-add{position:absolute;bottom:-11px;left:50%;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;background:var(--panel);border:1.5px solid var(--line2);display:grid;place-items:center;color:var(--muted);opacity:0;z-index:2}
.org-node:hover .org-add,.org-add:focus-visible{opacity:1}
.org-add:hover{border-color:var(--sky);color:var(--sky)}
@media (hover:none){.org-add{opacity:1}.fitem-more,.madd,.ck-item .icon-btn{opacity:1}}
@media (max-width:600px){
  .mcell{min-height:52px;cursor:pointer}
  .mcell .cchip,.mcell .evchip{display:inline-block;width:9px!important;height:9px;padding:0;margin:1px!important;border-radius:50%!important;font-size:0;pointer-events:none;box-shadow:none;vertical-align:top}
  .mcell .evchip{background:var(--night)}
  .mcell .cchip.late{outline:1.5px solid var(--late);outline-offset:1px}
  .mcell .more{font-size:10px;padding:0 2px;pointer-events:none}
  .madd{display:none}
  .day-agenda{display:block}
  .mcell.sel{box-shadow:inset 0 0 0 2px var(--sky)}
  .cal-label{min-width:0;font-size:17px}
}
.rating{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;font-size:12.5px;font-weight:700}
.lbl-chip{display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 8px;border-radius:10px;font-size:11.5px;font-weight:700;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.prop-v .lbl-chip{height:26px;font-size:12.5px;padding:0 6px 0 10px;border-radius:13px}
.lbl-dot{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}
.sub-chip-sm{display:inline-flex;align-items:center;gap:2px;height:20px;padding:0 7px 0 5px;border-radius:5px;font-size:11.5px;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff);border:1px solid color-mix(in srgb,var(--c) 35%,#fff);white-space:nowrap}
.sub-toggle{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px;border-radius:7px;font-size:13px;font-weight:600;color:var(--c);background:#fff;border:1.5px solid color-mix(in srgb,var(--c) 40%,#fff)}
.sub-toggle:hover{background:color-mix(in srgb,var(--c) 8%,#fff)}
.sub-toggle.on{background:var(--c);border-color:var(--c);color:#fff}
.sub-toggle .count{color:inherit;opacity:.8;font-size:12px}
.subs-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px;font-size:13px}
.tile-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:7px}
.tile.urgent{border-left:3px solid var(--late)}
.fitem-count.late{color:#F2A493;font-weight:700}
.urgent-box{background:#FFF6F4;border:1px solid #F0C9C1;border-left:4px solid var(--late);border-radius:14px;padding:14px 16px;margin-bottom:22px}
.urgent-head{display:flex;align-items:center;gap:8px;color:var(--late);margin-bottom:10px;flex-wrap:wrap}
.urgent-head h2{font-size:16px;font-weight:740;font-stretch:112%}
.tpl-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--bg);border-radius:10px;padding:8px 10px;margin-bottom:16px}
.tpl-check{display:flex;flex-wrap:wrap;gap:5px}
.tpl-item{display:flex;align-items:center;gap:10px;padding:10px 0}
.tpl-item+.tpl-item{border-top:1px solid var(--line)}
.lab-row{display:flex;align-items:center;gap:8px;padding:7px 0;flex-wrap:wrap}
.lab-row+.lab-row{border-top:1px solid var(--line)}
.lab-row .input{flex:1 1 150px;width:auto;height:32px}
.lab-row.new{margin-top:6px}
.wa{margin-left:6px;font-size:11.5px;font-weight:700;color:var(--ok)!important;text-decoration:none!important;background:var(--ok-s);padding:1px 7px;border-radius:9px}
.waiting{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:11.5px;font-weight:700;color:var(--ochre);background:var(--ochre-s);border-radius:6px;padding:2px 7px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.waiting.inline{margin-top:0}
.dep-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border-radius:14px;background:var(--ochre-s);color:var(--ochre);font-size:13px;font-weight:600;max-width:100%}
.dep-chip button:not(.chip-x){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.dep-chip button:not(.chip-x):hover{text-decoration:underline}
.dep-chip.ok{background:var(--ok-s);color:var(--ok)}
.wait-note{background:var(--ochre-s);color:var(--ochre)}
.clean-box{display:inline-flex;gap:6px;align-items:center}
.muted-link{color:var(--muted)!important}
.leg-seg{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink2)}
.leg-seg i{width:12px;height:12px;border-radius:3px;display:inline-block}
.leg-late{color:var(--late)}
.trash-row{align-items:center}
.late-txt{color:var(--late)!important;font-weight:600}
.tour{padding:30px 30px 8px;text-align:center}
.tour-art{display:flex;justify-content:center;margin-bottom:16px}
.tour-ic{width:72px;height:72px;border-radius:22px;background:var(--night);color:var(--brand-2);display:grid;place-items:center;box-shadow:0 10px 24px rgba(20,35,58,.22)}
.tour-step{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.tour-title{font-size:22px;font-weight:760;font-stretch:118%;margin:6px 0 10px!important}
.tour-text{color:var(--ink2);line-height:1.6;max-width:420px;margin:0 auto!important}
.tour-tip{display:flex;gap:8px;align-items:flex-start;text-align:left;background:var(--sky-s);color:var(--sky-d);border-radius:10px;padding:10px 12px;margin:16px auto 0;max-width:420px;font-size:13px}
.tour-dots{display:flex;justify-content:center;gap:6px;margin-top:18px}
.tour-dots i{width:7px;height:7px;border-radius:50%;background:var(--line2);display:block}
.tour-dots i.on{background:var(--focus,var(--sky));width:20px;border-radius:4px}
.mcell.drop-over,.wcol.drop-over{box-shadow:inset 0 0 0 2px var(--sky);background:var(--sky-s)}
.cchip.dragging,.wcard.dragging{opacity:.4}
.cchip[draggable=true],.wcard[draggable=true],.evchip[draggable=true]{cursor:grab}
.drive-note{margin-bottom:8px;background:var(--sky-s);color:var(--sky-d)}
.att-ic.drive{background:var(--sky-s);color:var(--sky)}
.meter-ok>i{background:var(--ok)}
.meter-soon>i{background:var(--sky)}
.meter-late>i{background:var(--late)}
.run-dot{width:7px;height:7px;border-radius:50%;background:var(--sky);display:inline-block;box-shadow:0 0 0 2px var(--sky-s)}
.period-l{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);font-weight:600}
.cchip.r-start{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-7px;width:calc(100% + 7px)}
.cchip.r-mid{border-radius:0;margin:0 -7px;width:calc(100% + 14px)}
.cchip.r-end{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-7px;width:calc(100% + 7px)}
.evchip.r-start{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-7px;width:calc(100% + 7px)}
.evchip.r-mid{border-radius:0;margin:0 -7px;width:calc(100% + 14px)}
.evchip.r-end{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-7px;width:calc(100% + 7px)}
.done-tag{background:var(--ok-s);color:var(--ok);height:26px;padding:0 10px}
.nav-badge.warn{background:var(--late);color:#fff;font-size:11px}
.trash-full{background:var(--late-s);color:var(--late)}
.crop-frame{position:relative;margin:0 auto;overflow:hidden;touch-action:none;cursor:grab;box-shadow:0 0 0 1px var(--line2),0 8px 22px rgba(20,35,58,.14);background-color:#fff;background-image:linear-gradient(45deg,#E9ECF1 25%,transparent 25%),linear-gradient(-45deg,#E9ECF1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#E9ECF1 75%),linear-gradient(-45deg,transparent 75%,#E9ECF1 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}
.crop-frame.circle{border-radius:50%}
.crop-frame.rounded{border-radius:26%}
.crop-frame img{position:absolute;max-width:none;user-select:none;pointer-events:none}
.crop-zoom{display:flex;align-items:center;gap:10px;max-width:280px;margin:0 auto}
.crop-zoom input{flex:1;accent-color:var(--sky)}
.crop-bg{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.brand-logo.round{border-radius:50%}
.add-box{border:1.5px dashed var(--line2);border-radius:12px;padding:10px 12px;margin-top:12px;background:#FAFBFC}
.add-box-t{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--sky-d);text-transform:uppercase;letter-spacing:.03em}
.add-box .add-row{margin-top:8px}
.count-pill{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:var(--col);color:var(--ink2);font-size:12px;font-weight:700}
.count-pill.late{background:var(--late);color:#fff}
.attn-tabs{margin-bottom:0}
.attn-panel{border-top-left-radius:0;border-top-right-radius:0;margin-bottom:10px}
.stat-go{display:flex;align-items:center;gap:2px;margin-top:10px;font-size:12.5px;font-weight:600;color:var(--focus,var(--sky))}
.day-agenda{display:none;margin-top:14px}
.theme-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:520px;margin-top:6px}
@media (max-width:700px){.theme-row{grid-template-columns:1fr}}
.sres-ic{width:28px;height:28px;border-radius:8px;background:var(--sky-s);color:var(--sky);display:grid;place-items:center;flex:none}
.sres-k{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;flex:none}
.proj-events{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:13px}
.proj-events-l{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-weight:600}
.pe-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:13px;background:var(--gold);color:var(--on-gold);font-weight:600;font-size:12.5px;max-width:320px;overflow:hidden;white-space:nowrap}
.pe-chip b{font-weight:600}
.pe-loc{font-weight:500;opacity:.8;overflow:hidden;text-overflow:ellipsis}
button.pe-chip:hover{filter:brightness(.96)}
.ev-projs{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.evchip .flogo{margin-right:4px;vertical-align:-2px}
@media (max-width:900px){.font-row{grid-template-columns:1fr}.col-add{flex-basis:230px}.icon-grid{grid-template-columns:repeat(6,1fr)}}

@media (max-width:1180px){.home-grid{grid-template-columns:1fr}.year{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;top:0;bottom:0;left:0;width:282px;z-index:90;transform:translateX(-100%);transition:transform .2s ease}
  .sidebar.open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.35)}
  .scrim{display:block;position:fixed;inset:0;background:rgba(15,25,40,.4);z-index:80}
  .only-mobile{display:inline-grid!important}
  .hide-sm{display:none!important}
  .content{padding:20px 14px 48px}
  .topbar{padding:0 10px;gap:8px}
  .week{grid-template-columns:1fr}
  .wcol{min-height:0}
  .year{grid-template-columns:repeat(2,minmax(0,1fr))}
  .props{grid-template-columns:108px minmax(0,1fr)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mcell{min-height:70px;padding:4px}
  .cchip{font-size:11px;padding:2px 5px}
  .pop{position:fixed!important;left:10px!important;right:10px!important;bottom:10px!important;top:auto!important;width:auto!important;max-height:65vh;z-index:300;box-shadow:0 -8px 40px rgba(15,25,40,.3)}
  .ep :is(input,textarea,select){font-size:16px}
  .topbar{gap:4px}
  .top-actions{gap:2px}
  .page-title{font-size:24px}
  .cal-filters{margin-left:0}
  .column{flex-basis:270px;max-height:none}
  .cd-row{grid-template-columns:64px minmax(0,1fr)}
  .cd-date{display:none}
  .cd-t{font-size:20px}
  .grid2{grid-template-columns:1fr}
  .emojis{grid-template-columns:repeat(6,1fr)}
  .modal-body{padding:12px 16px 20px}
  .modal-head{padding:12px 12px 0 16px}
  .overlay{padding:2vh 8px}
}

/* ===================== versão web: ajustes fora do protótipo ===================== */
/* No protótipo a regra base .day-agenda{display:none} vem depois do bloco de celular e vencia pela ordem;
   aqui a agenda do dia aparece no celular como a especificação pede. */
@media (max-width:600px){.ep .day-agenda{display:block}}
/* Ícones SVG alinhados ao texto */
.ep svg.ic{flex:none;vertical-align:middle}
/* Chips de logo dentro de botões de aba */
.tab .flogo,.tab .brand-logo,.tab .brand-mark{flex:none}
/* Área de toque mínima nos botões pequenos no celular */
@media (hover:none){.icon-btn.sm{width:34px;height:34px}}
