@font-face{font-family:'Barlow Condensed';font-weight:700;font-display:swap;src:url(/fonts/barlow-condensed_latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:800;font-display:swap;src:url(/fonts/barlow-condensed_latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-weight:300 900;font-display:swap;src:url(/fonts/inter-latin-var.woff2) format('woff2')}
:root{
  --bg:#070a09;--bg2:#0d1210;--card:#121917;--card2:#17201d;--linha:rgba(255,255,255,.09);
  --txt:#eef1ee;--mudo:#9aa59f;--ouro:#e0b350;--ouro2:#f3d791;--verde:#b98a2c;--ok:#4fd7ac;--verm:#e0675a;--amar:#e5b53d;
  --grad:linear-gradient(135deg,#f6dc9a,#e0b350 45%,#a97a1f);--r:16px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{font-size:17px}
body{background:var(--bg);color:var(--txt);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:"Barlow Condensed",Inter,sans-serif;line-height:1.15}
[hidden]{display:none!important}

/* estrutura */
#app{max-width:980px;margin:0 auto;padding:16px 16px 110px}
.topo{display:flex;align-items:center;justify-content:space-between;padding:6px 0 18px}
.marca{font-family:"Barlow Condensed";font-style:italic;font-weight:800;font-size:2rem;text-transform:uppercase}
.marca b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tit{font-size:1.7rem;font-weight:800;margin-bottom:4px}
.sub{color:var(--mudo);margin-bottom:18px}
.voltar{background:none;border:0;color:var(--ouro2);font-weight:600;padding:8px 0;cursor:pointer;font-size:.95rem}

/* menu de baixo */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(10,14,12,.96);backdrop-filter:blur(14px);border-top:1px solid var(--linha);display:flex;justify-content:center;padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
.nav a{flex:1;max-width:150px;text-align:center;text-decoration:none;color:var(--mudo);font-size:.72rem;font-weight:600;padding:6px 2px;border-radius:12px}
.nav a svg{display:block;margin:0 auto 2px;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nav a.on{color:var(--ouro2)}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 22px;border-radius:14px;border:1.5px solid transparent;font-weight:700;cursor:pointer;text-decoration:none;font-size:1rem;transition:transform .15s,opacity .15s}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.5;pointer-events:none}
.btn--ouro{background:var(--grad);color:#031510}
.btn--verde{background:var(--verde);color:#04150f}
.btn--linha{border-color:rgba(143,243,211,.45);color:var(--ouro2);background:transparent}
.btn--cinza{background:var(--card2);border-color:var(--linha)}
.btn--perigo{background:transparent;border-color:rgba(224,103,90,.5);color:var(--verm)}
.btn--p{min-height:40px;padding:8px 14px;font-size:.9rem;border-radius:12px}
.btn--bloco{width:100%}
.acoes{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.acoes .btn{flex:1 1 200px}

/* grandes atalhos da home */
.atalhos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
.atalho{display:flex;flex-direction:column;gap:10px;align-items:flex-start;justify-content:center;min-height:118px;padding:18px;border-radius:var(--r);background:var(--card);border:1px solid var(--linha);text-decoration:none;font-weight:700;font-size:1.05rem;transition:border-color .2s}
.atalho:hover{border-color:rgba(224,179,80,.5)}
.atalho svg{width:34px;height:34px;fill:none;stroke:var(--ouro);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.atalho small{display:block;font-weight:500;color:var(--mudo);font-size:.8rem}
.atalho--ouro{background:var(--grad);color:#031510;border:0}
.atalho--ouro svg{stroke:#031510}.atalho--ouro small{color:#0b4a39}

/* cartões e listas */
.card{background:var(--card);border:1px solid var(--linha);border-radius:var(--r);padding:16px;margin-bottom:12px}
.card h3{font-size:1.02rem;margin-bottom:8px}
.grade2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.num{font:800 1.6rem "Barlow Condensed";margin-top:2px}
.rot{font-size:.76rem;color:var(--mudo);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.item{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--card);border:1px solid var(--linha);border-radius:14px;margin-bottom:10px;text-decoration:none;cursor:pointer;transition:border-color .2s}
.item:hover{border-color:rgba(34,211,160,.45)}
.item .t{font-weight:700}
.item .s{color:var(--mudo);font-size:.86rem}
.item .d{text-align:right;flex:none}
.item .v{font-weight:800;font-family:"Barlow Condensed"}
.chip{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--mudo);white-space:nowrap}
.chip--ok{background:rgba(25,166,124,.18);color:#4fd7ac}
.chip--al{background:rgba(229,181,61,.18);color:var(--amar)}
.chip--er{background:rgba(224,103,90,.18);color:#ff9a8e}
.chip--az{background:rgba(90,150,230,.18);color:#8db8ff}
.vazio{text-align:center;color:var(--mudo);padding:36px 12px;border:1.5px dashed var(--linha);border-radius:var(--r)}
.filtros{display:flex;gap:8px;overflow-x:auto;margin-bottom:14px;padding-bottom:4px;scrollbar-width:none}
.filtros button{flex:none;border:1.5px solid var(--linha);background:transparent;border-radius:999px;padding:8px 16px;color:var(--mudo);font-weight:600;cursor:pointer}
.filtros button.on{background:var(--grad);color:#031510;border-color:transparent}
.alerta{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:rgba(229,181,61,.1);border:1px solid rgba(229,181,61,.3);margin-bottom:8px;font-size:.92rem;text-decoration:none}
.alerta--er{background:rgba(224,103,90,.1);border-color:rgba(224,103,90,.35)}
.fab{position:fixed;right:18px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:15;box-shadow:0 12px 30px -8px rgba(0,0,0,.8)}

/* formulários */
.form{display:grid;gap:14px}
label.c{display:grid;gap:6px;font-size:.82rem;font-weight:600;color:var(--mudo)}
.in,select.in,textarea.in{width:100%;min-height:50px;background:#0a0f0d;border:1.5px solid var(--linha);border-radius:12px;padding:12px 14px;color:var(--txt);color-scheme:dark;font-size:1rem}
textarea.in{min-height:90px;resize:vertical}
.in:focus{outline:0;border-color:var(--ouro)}
.in.erro{border-color:var(--verm)}
.l2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.linha-item{display:grid;grid-template-columns:1fr 130px 44px;gap:8px}
.x{background:none;border:1.5px solid var(--linha);border-radius:12px;color:var(--mudo);cursor:pointer;font-size:1.3rem}
.total{display:flex;justify-content:space-between;align-items:baseline;padding:14px 16px;border-radius:14px;background:var(--card2);border:1px solid rgba(34,211,160,.35)}
.total b{font:800 1.6rem "Barlow Condensed";color:var(--ouro2)}
.dica{font-size:.82rem;color:var(--mudo)}
details.det{background:var(--card);border:1px solid var(--linha);border-radius:14px;padding:12px 16px}
details.det summary{cursor:pointer;font-weight:600;color:var(--ouro2)}
details.det[open] summary{margin-bottom:12px}

/* janela (modal) */
.fundo{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.72);display:flex;align-items:flex-end;justify-content:center}
.janela{width:100%;max-width:560px;max-height:92vh;overflow:auto;background:var(--bg2);border:1px solid var(--linha);border-radius:22px 22px 0 0;padding:20px 18px calc(24px + env(safe-area-inset-bottom))}
@media (min-width:700px){.fundo{align-items:center}.janela{border-radius:22px}}
.janela h2{font-size:1.35rem;margin-bottom:14px}
.erro-msg{color:#ff9a8e;font-size:.9rem;min-height:1.2em}
.aviso-ok{background:rgba(25,166,124,.14);border:1px solid rgba(25,166,124,.4);color:#7be4c3;padding:12px 14px;border-radius:12px;margin-bottom:12px;font-size:.92rem}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:80;background:#1d2723;border:1px solid rgba(224,179,80,.5);padding:12px 20px;border-radius:999px;font-weight:600;font-size:.92rem;max-width:90vw;box-shadow:0 12px 30px -8px #000}

/* agenda */
.mes{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mes h2{font-size:1.25rem;text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px}
.cal .dw{text-align:center;font-size:.7rem;color:var(--mudo);font-weight:700;padding:4px 0}
.cal .dia{aspect-ratio:1/1;min-height:44px;background:var(--card);border:1px solid var(--linha);border-radius:10px;padding:4px;font-size:.85rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.cal .dia.fora{opacity:.3}
.cal .dia.hoje{border-color:var(--ouro)}
.cal .dia.sel{background:var(--card2);box-shadow:0 0 0 2px var(--ouro) inset}
.cal .pts{display:flex;gap:3px}
.cal .pt{width:7px;height:7px;border-radius:50%;background:var(--verde)}
.cal .pt.sem{background:var(--amar)}

/* ícones de passos */
.passos{display:flex;gap:6px;margin:6px 0 16px}
.passos span{flex:1;height:6px;border-radius:6px;background:var(--card2)}
.passos span.ok{background:var(--grad)}
.kv{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;font-size:.95rem}
.kv dt{color:var(--mudo)}
.kv dd{font-weight:600}
.tabela{width:100%;border-collapse:collapse}
.tabela td{padding:9px 0;border-bottom:1px solid var(--linha);vertical-align:top}
.tabela td:last-child{text-align:right;white-space:nowrap;font-weight:700}

/* páginas públicas (cliente final) e impressão */
.pub{max-width:760px;margin:0 auto;padding:18px 16px 60px}
.pub .cab{text-align:center;padding:10px 0 20px}
.pub .cab img{width:min(320px,80%);margin:0 auto}
.papel{background:#fff;color:#14181a;border-radius:14px;padding:clamp(18px,4vw,36px);box-shadow:0 20px 60px -30px #000}
.papel h1{font-size:1.5rem;margin-bottom:4px}
.papel .sub{color:#667}
.papel .tabela td{border-color:#e4e8e6}
.papel .rot{color:#667}
.papel .tot{display:flex;justify-content:space-between;font:800 1.4rem "Barlow Condensed";padding-top:12px}
.contrato-texto{white-space:pre-wrap;font:400 .95rem/1.7 Georgia,serif}
.canvas-box{border:2px dashed #7fcdb4;border-radius:12px;background:#f4fffb;touch-action:none;position:relative}
.canvas-box canvas{width:100%;height:170px;display:block}
.canvas-box small{position:absolute;left:10px;bottom:6px;color:#6fae9b;pointer-events:none}
.papel .in{background:#fff;color:#14181a;border-color:#cfd5d2;color-scheme:light}
.papel label.c{color:#556}
.assinado{border:2px solid #19a67c;border-radius:12px;padding:14px;background:#effaf5;color:#0c5a43}
.assinado img{max-width:240px;background:#fff;border-radius:8px;margin:8px 0}
.hash{font:400 .7rem monospace;word-break:break-all;color:#667}

@media print{
  body{background:#fff}
  .nav,.fab,.noprint,.topo,.acoes{display:none!important}
  .pub{padding:0}.pub .cab{display:block}
  .papel{box-shadow:none;border-radius:0;padding:0}
  .pub .cab img{mix-blend-mode:normal;filter:none;background:#000;padding:8px;border-radius:8px;width:220px}
}
@media (max-width:420px){
  html{font-size:16px}
  .linha-item{grid-template-columns:1fr 110px 40px}
  .l2.q{grid-template-columns:1fr}
}

/* ---- ferramentas (demonstração) ---- */
.demo-aviso{background:rgba(90,150,230,.1);border-color:rgba(90,150,230,.35)}
.ferr{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ferr__item{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 16px;border-radius:var(--r);background:var(--card);border:1px solid var(--linha);text-decoration:none;min-height:150px;transition:border-color .2s,transform .2s}
.ferr__item:hover{border-color:rgba(224,179,80,.5);transform:translateY(-3px)}
.ferr__item span{font-size:1.9rem}
.ferr__item b{font:800 1rem "Barlow Condensed"}
.ferr__item small{color:var(--mudo);font-size:.8rem;line-height:1.35}
.ferr__item i{position:absolute;right:12px;top:12px;font-style:normal}
.barra{margin-bottom:12px}
.barra__t{display:flex;justify-content:space-between;font-size:.9rem;margin-bottom:5px}
.barra__f{height:9px;border-radius:9px;background:var(--card2);overflow:hidden}
.barra__f i{display:block;height:100%;border-radius:9px;background:var(--grad)}
.mapa{border:1px solid var(--linha);border-radius:var(--r);overflow:hidden;background:radial-gradient(80% 80% at 40% 40%,#0f1b17,#080d0b);margin-bottom:12px}
.pt{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.assentos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.seat{aspect-ratio:1/1;border-radius:12px;border:1.5px solid var(--linha);background:var(--card2);color:var(--txt);font-weight:800;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.seat small{font-weight:500;font-size:.62rem;color:var(--mudo)}
.seat--oc{background:rgba(34,211,160,.16);border-color:rgba(34,211,160,.6);color:var(--ouro2)}
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px;margin-bottom:12px}
.kan{background:var(--card);border:1px solid var(--linha);border-radius:var(--r);padding:12px;display:grid;gap:8px;align-content:start}
.kan__c{background:var(--card2);border-radius:12px;padding:12px;display:grid;gap:3px}
.kan__c small{color:var(--mudo)}
.chk{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--linha);font-size:.98rem}
.chk input{width:24px;height:24px;accent-color:#e0b350}
.sw{position:relative;width:52px;height:30px;flex:none}
.sw input{opacity:0;position:absolute;inset:0;cursor:pointer;z-index:2}
.sw i{position:absolute;inset:0;border-radius:30px;background:#2a3531;transition:.25s}
.sw i::after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:.25s}
.sw input:checked+i{background:var(--ouro)}
.sw input:checked+i::after{transform:translateX(22px)}
.bolha{margin-top:12px;background:#0e2a22;border:1px solid rgba(34,211,160,.25);border-radius:4px 16px 16px 16px;padding:12px 14px;font-size:.9rem;color:#cfeee4}
