/* ============================================================
   Contador One — Porteiro (entrada unificada dos aplicativos)
   Cabeçalho padrão + sidebar de ferramentas + filtros de escopo
   + front door (abrir salvo / criar novo).
   Usa os tokens do produto (colors_and_type.css) — tema claro/escuro.
   ============================================================ */
.pt-root { --pt-rail: 264px; display:flex; min-height:100vh; background:var(--bg-soft); color:var(--fg); }

/* Sidebar (menu de ferramentas) */
.pt-side { flex:none; width:72px; background:var(--surface); border-right:1px solid var(--border); display:flex; flex-direction:column; transition:width .2s cubic-bezier(.2,.8,.2,1); position:sticky; top:0; height:100vh; overflow:hidden; z-index:50; }
.pt-side:hover, .pt-side.pinned { width:var(--pt-rail); }
.pt-side:hover { overflow-y:auto; }
.pt-brand { display:flex; align-items:center; gap:12px; padding:16px; border-bottom:1px solid var(--border); height:62px; }
.pt-brand .bird { height:30px; width:40px; object-fit:contain; flex:none; }
.pt-brand .full { height:26px; flex:none; display:none; }
.pt-side:hover .pt-brand .bird, .pt-side.pinned .pt-brand .bird { display:none; }
.pt-side:hover .pt-brand .full, .pt-side.pinned .pt-brand .full { display:block; }
.pt-sec { font-family:var(--font-mono,monospace); font-size:10px; color:var(--fg-subtle); letter-spacing:.14em; text-transform:uppercase; padding:16px 22px 6px; white-space:nowrap; opacity:0; transition:opacity .16s; }
.pt-side:hover .pt-sec, .pt-side.pinned .pt-sec { opacity:1; }
.pt-list { list-style:none; margin:0; padding:6px 12px; display:flex; flex-direction:column; gap:3px; }
.pt-item { display:flex; align-items:center; gap:14px; padding:10px 12px; border-radius:10px; color:var(--fg-muted); cursor:pointer; white-space:nowrap; font-size:14px; font-weight:500; border:0; background:none; font-family:inherit; width:100%; text-align:left; height:44px; overflow:hidden; transition:background .15s,color .15s; }
.pt-item:hover { background:var(--bg-muted); color:var(--fg); }
.pt-item .i { width:22px; height:22px; flex:none; display:grid; place-items:center; }
.pt-item .l { opacity:0; transition:opacity .16s ease 60ms; flex:1; }
.pt-item .f { opacity:0; transition:opacity .16s ease 60ms; font-family:var(--font-mono,monospace); font-size:9px; color:var(--fg-subtle); letter-spacing:.05em; text-transform:uppercase; }
.pt-side:hover .pt-item .l, .pt-side.pinned .pt-item .l, .pt-side:hover .pt-item .f, .pt-side.pinned .pt-item .f { opacity:1; }
.pt-item.on { background:var(--brand-soft); color:var(--brand); }
.pt-spacer { flex:1; }
.pt-user { border-top:1px solid var(--border); padding:12px 16px; display:flex; align-items:center; gap:12px; height:60px; }
.pt-user .av { width:34px; height:34px; border-radius:50%; background:var(--brand); color:#fff; display:grid; place-items:center; font-weight:700; font-size:13px; flex:none; }
.pt-user .m { display:flex; flex-direction:column; gap:1px; opacity:0; transition:opacity .16s ease 60ms; white-space:nowrap; }
.pt-side:hover .pt-user .m, .pt-side.pinned .pt-user .m { opacity:1; }
.pt-user .n { font-size:13px; font-weight:600; } .pt-user .r { font-size:11px; color:var(--fg-subtle); }

/* Main */
.pt-main { flex:1; min-width:0; padding:26px 34px 60px; display:flex; flex-direction:column; gap:20px; }
/* espaço para os botões flutuantes (apps + usuário) no canto superior direito */
@media (min-width: 980px) { .pt-head { padding-right: 300px; } }
.pt-head { display:flex; align-items:flex-end; justify-content:space-between; gap:22px; flex-wrap:wrap; }
.pt-crumb { font-family:var(--font-mono,monospace); font-size:11px; color:var(--fg-subtle); letter-spacing:.14em; text-transform:uppercase; margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.pt-crumb::before { content:""; width:24px; height:1px; background:var(--brand); }
.pt-head h1 { font-size:clamp(24px,2vw,30px); font-weight:700; margin:0; letter-spacing:-.02em; }
.pt-head p { margin:6px 0 0; color:var(--fg-muted); font-size:14px; max-width:560px; }
.pt-new { height:44px; padding:0 18px; border-radius:var(--radius-sm); background:var(--brand); color:#fff; border:0; font-family:inherit; font-size:14px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:8px; box-shadow:var(--shadow-brand,0 6px 18px -6px rgba(250,100,0,.55)); transition:background .16s,transform .08s; }
.pt-new:hover { background:var(--brand-hover); } .pt-new:active { transform:translateY(1px); }

/* Filtros (chips) */
.pt-filters { display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; }
.pt-fwrap { position:relative; flex:1 1 0; min-width:200px; }
.pt-chip { width:100%; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:10px 14px; cursor:pointer; display:flex; align-items:center; gap:12px; height:56px; font-family:inherit; transition:border-color .16s; }
.pt-chip:hover { border-color:var(--border-strong); }
.pt-fwrap.open .pt-chip { border-color:var(--brand); box-shadow:0 0 0 4px rgba(250,100,0,.14); }
.pt-chip .ci { width:32px; height:32px; border-radius:8px; background:var(--brand-soft); color:var(--brand); display:grid; place-items:center; flex:none; }
.pt-chip .cb { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; align-items:flex-start; }
.pt-chip .cl { font-family:var(--font-mono,monospace); font-size:10px; color:var(--fg-subtle); letter-spacing:.1em; text-transform:uppercase; }
.pt-chip .cv { font-size:14px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.pt-chip .cc { color:var(--fg-subtle); flex:none; transition:transform .16s; } .pt-fwrap.open .pt-chip .cc { transform:rotate(180deg); }
.pt-seg { flex:0 0 auto; display:inline-flex; align-items:stretch; height:56px; padding:4px; background:var(--bg-muted); border:1px solid var(--border); border-radius:12px; }
.pt-seg .sl { display:inline-flex; align-items:center; padding:0 12px 0 10px; font-family:var(--font-mono,monospace); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-subtle); border-right:1px solid var(--border); margin-right:4px; }
.pt-seg button { background:transparent; border:0; padding:0 16px; border-radius:8px; color:var(--fg-muted); font-family:inherit; font-size:13.5px; font-weight:500; cursor:pointer; transition:all .16s; }
.pt-seg button.on { background:var(--brand); color:#fff; }
.pt-star { flex:0 0 auto; white-space:nowrap; display:inline-flex; align-items:center; gap:9px; height:56px; padding:0 16px; border-radius:12px; border:1px solid var(--border); background:var(--surface); color:var(--fg-muted); font-family:inherit; font-size:13.5px; font-weight:500; cursor:pointer; transition:all .16s; }
.pt-star.on { color:var(--brand); border-color:color-mix(in oklab,var(--brand) 40%,transparent); background:var(--brand-soft); }

/* Menu dropdown */
.pt-menu { position:absolute; top:calc(100% + 8px); left:0; min-width:340px; z-index:2110; background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-lg,0 24px 60px -16px rgba(0,0,0,.35)); display:flex; flex-direction:column; max-height:440px; overflow:hidden; }
.pt-mh { display:flex; align-items:center; justify-content:space-between; padding:12px 14px 10px; border-bottom:1px solid var(--border); }
.pt-mt { font-family:var(--font-mono,monospace); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg-subtle); }
.pt-mx { background:none; border:0; color:var(--fg-subtle); cursor:pointer; width:24px; height:24px; display:grid; place-items:center; border-radius:6px; }
.pt-mx:hover { background:var(--bg-muted); color:var(--fg); }
.pt-msearch { position:relative; padding:10px 12px; border-bottom:1px solid var(--border); }
.pt-msearch svg { position:absolute; left:22px; top:50%; transform:translateY(-50%); color:var(--fg-subtle); }
.pt-msearch input { width:100%; background:var(--bg-soft); border:1px solid var(--border); border-radius:8px; padding:9px 12px 9px 34px; color:var(--fg); font-family:inherit; font-size:13px; outline:none; }
.pt-msearch input:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(250,100,0,.14); }
.pt-mlist { padding:6px; overflow-y:auto; flex:1; }
.pt-div { height:1px; background:var(--border); margin:6px 4px; }
.pt-empty { padding:20px 12px; text-align:center; color:var(--fg-subtle); font-size:12px; }
.pt-opt { width:100%; background:none; border:0; display:flex; align-items:center; gap:12px; padding:9px 10px; border-radius:8px; color:var(--fg); font-family:inherit; text-align:left; cursor:pointer; transition:background .14s; }
.pt-opt:hover { background:var(--bg-muted); } .pt-opt.on { background:var(--brand-soft); }
.pt-opt .bd { width:30px; height:30px; border-radius:8px; background:var(--bg-muted); color:var(--fg-muted); display:grid; place-items:center; flex:none; }
.pt-opt.on .bd { background:var(--brand); color:#fff; }
.pt-opt .ob { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.pt-opt .on1 { font-weight:500; font-size:13.5px; } .pt-opt.on .on1 { color:var(--brand); }
.pt-opt .os { font-size:11px; color:var(--fg-subtle); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pt-opt .ck { color:var(--brand); opacity:0; flex:none; } .pt-opt.on .ck { opacity:1; }
.pt-cbx { width:18px; height:18px; border-radius:5px; background:var(--bg-soft); border:1.5px solid var(--border-strong); display:grid; place-items:center; flex:none; color:transparent; }
.pt-cbx.checked { background:var(--brand); border-color:var(--brand); color:#fff; }

/* Front door */
.pt-door { display:flex; flex-direction:column; gap:18px; }
.pt-bar { display:flex; align-items:center; gap:14px; }
.pt-dsearch { position:relative; flex:1; }
.pt-dsearch svg { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--fg-subtle); }
.pt-dsearch input { width:100%; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:12px 12px 12px 40px; font-family:inherit; font-size:14px; color:var(--fg); outline:none; }
.pt-dsearch input:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(250,100,0,.14); }
.pt-meta { font-family:var(--font-mono,monospace); font-size:11px; color:var(--fg-subtle); white-space:nowrap; }
.pt-grp { display:flex; flex-direction:column; gap:10px; }
.pt-grph { display:flex; align-items:center; gap:9px; font-family:var(--font-mono,monospace); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-subtle); }
.pt-grph .gc { color:var(--fg-muted); background:var(--bg-muted); border-radius:20px; padding:1px 8px; font-size:10px; }
.pt-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.pt-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:16px; cursor:pointer; transition:border-color .16s,transform .16s,box-shadow .16s; display:flex; flex-direction:column; gap:12px; text-decoration:none; color:inherit; }
.pt-card:hover { border-color:color-mix(in oklab,var(--brand) 35%,var(--border)); transform:translateY(-2px); box-shadow:var(--shadow-md,0 10px 24px -12px rgba(0,0,0,.25)); }
.pt-card .t { display:flex; align-items:center; gap:11px; }
.pt-card .ic { width:36px; height:36px; border-radius:9px; flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--brand); }
.pt-card .nm { font-size:15px; font-weight:600; letter-spacing:-.01em; }
.pt-card .ow { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--fg-muted); }
.pt-card .ow .od { width:22px; height:22px; border-radius:6px; display:grid; place-items:center; background:var(--bg-muted); color:var(--fg-muted); flex:none; }
.pt-card .ft { display:flex; align-items:center; justify-content:space-between; }
.pt-card .wh { font-family:var(--font-mono,monospace); font-size:11px; color:var(--fg-subtle); }
.pt-mini { font-family:var(--font-mono,monospace); font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:2px 7px; border-radius:20px; }
.pt-mini.cliente { color:var(--c1-verde); background:color-mix(in oklab,var(--c1-verde) 15%,transparent); }
.pt-mini.fornecedor { color:var(--c1-azul-escuro); background:color-mix(in oklab,var(--c1-azul-escuro) 15%,transparent); }
.pt-mini.banco { color:var(--c1-dourado); background:color-mix(in oklab,var(--c1-dourado) 16%,transparent); }
.pt-mini.empregado { color:var(--c1-turquesa); background:color-mix(in oklab,var(--c1-turquesa) 16%,transparent); }
.pt-emptybox { text-align:center; color:var(--fg-muted); background:var(--surface); border:1px dashed var(--border); border-radius:var(--radius-md); padding:44px 24px; }
.pt-emptybox .ic { width:54px; height:54px; border-radius:13px; background:var(--bg-muted); display:grid; place-items:center; margin:0 auto 14px; color:var(--fg-muted); }
.pt-emptybox h2 { margin:0 0 8px; font-size:18px; font-weight:600; color:var(--fg); }
.pt-emptybox p { margin:0 auto; font-size:14px; max-width:440px; } .pt-emptybox b { color:var(--brand); }

/* Modal criar */
.pt-scrim { position:fixed; inset:0; background:rgba(30,15,0,.44); backdrop-filter:blur(3px); display:none; place-items:center; z-index:2100; }
.pt-scrim.show { display:grid; }
.pt-modal { width:600px; max-width:92vw; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); overflow:hidden; }
.pt-modh { padding:20px 22px 6px; }
.pt-modh .st { font-family:var(--font-mono,monospace); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--brand); }
.pt-modh h3 { margin:6px 0 0; font-size:20px; font-weight:700; } .pt-modh p { margin:6px 0 0; color:var(--fg-muted); font-size:13.5px; }
.pt-modf { padding:12px 22px 20px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid var(--border); margin-top:6px; }
.pt-modf .lf { font-size:12px; color:var(--fg-muted); }
.pt-ghost { background:none; border:1px solid var(--border); border-radius:var(--radius-sm); padding:9px 15px; font-family:inherit; font-weight:500; font-size:13.5px; color:var(--fg-muted); cursor:pointer; }
.pt-ghost:hover { background:var(--bg-muted); color:var(--fg); }
.pt-linkall { background:none; border:0; color:var(--brand); font-family:inherit; font-weight:500; font-size:12.5px; cursor:pointer; text-decoration:underline; }
.pt-toast { position:fixed; bottom:26px; left:50%; transform:translateX(-50%); background:var(--fg); color:var(--bg); padding:12px 20px; border-radius:30px; font-size:13.5px; font-weight:500; box-shadow:var(--shadow-lg); z-index:95; opacity:0; transition:opacity .2s,transform .2s; pointer-events:none; }
.pt-toast.show { opacity:1; transform:translateX(-50%) translateY(-4px); }

/* Tamanho fixo dos ícones vindos de constantes (SVG sem width/height) */
.pt-msearch > span svg { width:15px; height:15px; }
.pt-dsearch > span svg { width:17px; height:17px; }
.pt-mx svg { width:14px; height:14px; }
.pt-fwrap .cc svg { width:14px; height:14px; }
.pt-opt .ck svg { width:16px; height:16px; }
.pt-cbx svg { width:12px; height:12px; }
