:root{
  --bg:#0F1826;
  --bg-alt:#0B121D;
  --surface:#17223A;
  --surface-2:#1D2B4A;
  --paper:#E9E7DD;
  --ink:#20283A;
  --emerald:#34C28F;
  --emerald-dim:rgba(52,194,143,0.16);
  --amber:#E7B95C;
  --amber-dim:rgba(231,185,92,0.16);
  --coral:#E2614C;
  --coral-dim:rgba(226,97,76,0.16);
  --teal:#1F6B6B;
  --violet:#8C7CF0;
  --violet-dim:rgba(140,124,240,0.16);
  --text:#ECEEF3;
  --text-muted:#8D96AC;
  --hair:rgba(255,255,255,0.09);
  --radius:18px;
  --shadow:0 20px 50px -20px rgba(0,0,0,0.55);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(231,185,92,0.07), transparent 60%),
    radial-gradient(900px 500px at 5% 10%, rgba(52,194,143,0.06), transparent 55%),
    var(--bg);
  color:var(--text);
  font-family:'Inter',sans-serif;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){ *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }
::selection{background:var(--amber-dim);}
:focus-visible{outline:2px solid var(--amber); outline-offset:2px; border-radius:4px;}
.mono{font-family:'IBM Plex Mono',monospace;}
.display{font-family:'Fraunces',serif;}

/* ---------- Auth overlay ---------- */
#authOverlay{
  position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(1000px 600px at 80% -10%, rgba(231,185,92,0.08), transparent 60%),
    radial-gradient(800px 500px at 10% 100%, rgba(52,194,143,0.07), transparent 55%),
    var(--bg-alt);
  padding:24px;
}
.auth-card{width:100%; max-width:400px; background:var(--surface); border:1px solid var(--hair); border-radius:22px; padding:34px 32px; box-shadow:var(--shadow); animation:riseIn .5s ease both;}
.auth-logo{display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:26px;}
.auth-logo img{width:64px; height:64px; object-fit:contain;}
.auth-logo .name{font-family:'Fraunces',serif; font-size:22px; font-weight:600;}
.auth-logo .tag{font-size:12px; color:var(--text-muted); letter-spacing:.06em; text-transform:uppercase;}
.auth-tabs{display:flex; background:var(--bg-alt); border-radius:12px; padding:4px; margin-bottom:22px; border:1px solid var(--hair);}
.auth-tab{flex:1; text-align:center; padding:9px 0; font-size:13.5px; font-weight:600; color:var(--text-muted); cursor:pointer; border-radius:9px; transition:all .2s ease;}
.auth-tab.active{background:var(--surface-2); color:var(--text);}
.auth-form{display:none;}
.auth-form.active{display:block; animation:riseIn .3s ease both;}
.auth-error{background:var(--coral-dim); color:#f0a798; font-size:12.5px; padding:10px 12px; border-radius:10px; margin-top:14px; display:none;}
.auth-error.show{display:block;}
.auth-note{font-size:11.5px; color:var(--text-muted); margin-top:18px; text-align:center; line-height:1.5;}

/* ---------- App shell ---------- */
.shell{display:none;}
.shell.visible{display:block;}
.app-shell{max-width:1440px; margin:0 auto; min-height:100vh; display:grid; grid-template-columns:256px 1fr; visibility:hidden;}
.app-shell.ready{visibility:visible;}
.sidebar{border-right:1px solid var(--hair); padding:26px 16px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto;}
.side-brand{display:flex; align-items:center; gap:12px; padding:4px 6px 24px; border-bottom:1px solid var(--hair); margin-bottom:14px;}
.logo-slot{width:44px; height:44px; border-radius:12px; background:var(--surface); border:1.5px dashed var(--hair); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; overflow:hidden; position:relative; transition:border-color .2s ease;}
.logo-slot:hover{border-color:var(--amber);}
.logo-slot img{width:100%; height:100%; object-fit:cover;}
.logo-slot input{position:absolute; inset:0; opacity:0; cursor:pointer;}
.brand-name{font-size:17px; font-weight:600; letter-spacing:-.01em; outline:none; cursor:text; border-bottom:1px solid transparent; line-height:1.25;}
.brand-name:hover{border-bottom-color:var(--hair);}
.brand-name:focus{border-bottom-color:var(--amber);}
.brand-tag{color:var(--text-muted); font-size:11px; margin-top:2px;}

.nav-section-label{font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--text-muted); padding:14px 12px 6px;}
.side-nav{display:flex; flex-direction:column; gap:3px;}
.nav-item{display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:11px; border:none; background:transparent; color:var(--text-muted); font-family:'Inter',sans-serif; font-size:13.5px; font-weight:500; cursor:pointer; text-align:left; width:100%; transition:background .15s ease, color .15s ease; text-decoration:none;}
.nav-item svg{flex-shrink:0; opacity:.85;}
.nav-item:hover:not(.disabled){background:var(--surface); color:var(--text);}
.nav-item.active{background:var(--surface-2); color:var(--text);}
.nav-item.disabled{opacity:.4; cursor:default;}
.nav-soon{margin-left:auto; font-size:9px; text-transform:uppercase; letter-spacing:.05em; background:var(--hair); padding:2px 6px; border-radius:100px;}
.nav-spacer{flex:1;}

.side-user{border-top:1px solid var(--hair); padding-top:14px; margin-top:10px;}
.user-badge{display:flex; align-items:center; gap:10px; padding:4px 4px 12px;}
.user-avatar{width:32px; height:32px; border-radius:50%; background:var(--teal); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; font-family:'IBM Plex Mono',monospace; flex-shrink:0;}
.user-meta{min-width:0;}
.user-meta .n{font-size:13.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.user-meta .t{font-size:11px; color:var(--text-muted);}
.logout-btn{width:100%; background:transparent; border:1px solid var(--hair); color:var(--text-muted); cursor:pointer; font-size:12.5px; padding:9px; border-radius:10px; font-weight:600;}
.logout-btn:hover{color:var(--coral); border-color:var(--coral); background:var(--coral-dim);}

.content{padding:30px 36px 80px; min-width:0;}
.page{display:none;}
.page.active{display:block; animation:riseIn .4s ease both;}
.page-head{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:26px; gap:16px; flex-wrap:wrap;}
.page-head h1{font-size:25px; font-weight:600; margin:0 0 4px; letter-spacing:-.01em;}
.page-head p{margin:0; color:var(--text-muted); font-size:13.5px;}
.today-pill{font-size:12px; color:var(--text-muted); padding:8px 14px; border:1px solid var(--hair); border-radius:100px; white-space:nowrap;}

@media (max-width:960px){
  .app-shell{grid-template-columns:1fr;}
  .sidebar{position:relative; height:auto; flex-direction:row; align-items:center; padding:14px 16px; overflow-x:auto; gap:14px;}
  .side-brand{border-bottom:none; margin-bottom:0; padding:0; flex-shrink:0;}
  .nav-section-label{display:none;}
  .side-nav{flex-direction:row; flex:0;}
  .nav-item{white-space:nowrap;}
  .nav-spacer{display:none;}
  .side-user{border-top:none; margin-top:0; padding-top:0; display:flex; align-items:center; flex-shrink:0;}
  .logout-btn{width:auto; padding:9px 12px;}
  .content{padding:22px 18px 60px;}
}

/* ---------- Cards / stats ---------- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:26px;}
.stat-card{background:var(--surface); border:1px solid var(--hair); border-radius:var(--radius); padding:18px 20px; position:relative; overflow:hidden;}
.stat-card::after{content:''; position:absolute; left:20px; right:20px; bottom:0; height:3px; border-radius:3px 3px 0 0; background:var(--bar,var(--amber));}
.stat-label{font-size:12px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px;}
.stat-value{font-size:23px; font-weight:600; letter-spacing:-.01em;}
.stat-sub{font-size:12px; color:var(--text-muted); margin-top:6px;}
@media (max-width:640px){ .stats{grid-template-columns:repeat(2,1fr);} }
.stats3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px;}
@media (max-width:640px){ .stats3{grid-template-columns:1fr;} }

.card{background:var(--surface); border:1px solid var(--hair); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow);}
.card h2{margin:0 0 4px; font-size:19px; font-weight:600;}
.card .hint{color:var(--text-muted); font-size:13px; margin:0 0 20px;}

/* ---------- Forms ---------- */
.cad-grid{display:grid; grid-template-columns:400px 1fr; gap:22px; align-items:start;}
@media (max-width:960px){ .cad-grid{grid-template-columns:1fr;} }
label{display:block; font-size:12.5px; color:var(--text-muted); margin-bottom:6px; margin-top:16px;}
label:first-of-type{margin-top:0;}
input[type=text], input[type=number], input[type=date], input[type=password], input[type=email], select{
  width:100%; background:var(--bg-alt); border:1px solid var(--hair); color:var(--text);
  padding:11px 12px; border-radius:10px; font-size:14.5px; font-family:'Inter',sans-serif; appearance:none;
}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238D96AC' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:34px;}
input:focus, select:focus{border-color:var(--amber);}
input.input-invalid{border-color:var(--coral);}
.password-field{position:relative;}
.password-field input{padding-right:42px;}
.password-toggle{
  position:absolute; right:4px; top:50%; transform:translateY(-50%);
  width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  background:transparent; border:none; color:var(--text-muted); cursor:pointer; border-radius:7px; padding:0;
  transition:color .15s ease, background .15s ease;
}
.password-toggle:hover{color:var(--amber); background:var(--amber-dim);}
.field-error-msg{font-size:12px; color:var(--coral); margin-top:6px; display:none;}
.field-error-msg.show{display:block;}
.required-mark{color:var(--coral); margin-left:2px;}
.row-2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.check-row{display:flex; align-items:center; gap:10px; margin-top:18px; padding:12px 14px; background:var(--bg-alt); border:1px solid var(--hair); border-radius:12px;}
.check-row input[type=checkbox]{width:17px; height:17px; accent-color:var(--amber); margin:0;}
.check-row label{margin:0; font-size:13.5px; color:var(--text); cursor:pointer;}
.sub-fields{display:none; margin-top:12px; padding:14px; border-left:2px solid var(--amber); background:rgba(231,185,92,0.05); border-radius:0 12px 12px 0;}
.sub-fields.show{display:block;}

.btn{appearance:none; border:none; cursor:pointer; font-family:'Inter',sans-serif; font-weight:600; font-size:14.5px; border-radius:10px; padding:13px 18px; display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:transform .15s ease, filter .15s ease;}
.btn:active{transform:scale(.98);}
.btn-primary{background:linear-gradient(135deg, var(--amber), #d99f3d); color:#1a1305; width:100%; margin-top:22px;}
.btn-primary:hover{filter:brightness(1.06);}
.btn-emerald{background:linear-gradient(135deg, var(--emerald), #1f9e70); color:#06251b;}
.btn-emerald:hover{filter:brightness(1.08);}
.btn-coral{background:transparent; border:1px solid var(--coral); color:var(--coral);}
.btn-coral:hover{background:var(--coral-dim);}
.btn-sm{padding:8px 12px; font-size:12.5px; width:auto; margin-top:0;}

.preview-line{margin-top:20px; padding:14px 16px; background:var(--bg-alt); border-radius:12px; border:1px solid var(--hair); font-size:13px; color:var(--text-muted);}
.preview-line b{color:var(--text); font-family:'IBM Plex Mono',monospace; font-weight:500;}

/* ---------- Simple record list (cadastros) ---------- */
.record-list{display:flex; flex-direction:column; gap:4px;}
.record-row{display:flex; align-items:center; gap:14px; padding:13px 6px; border-bottom:1px solid var(--hair);}
.record-row:last-child{border-bottom:none;}
.record-avatar{width:36px; height:36px; border-radius:10px; background:var(--bg-alt); border:1px solid var(--hair); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--amber); flex-shrink:0;}
.record-main{flex:1; min-width:0;}
.record-name{font-size:14.5px; font-weight:600;}
.record-meta{font-size:12px; color:var(--text-muted); margin-top:2px;}
.record-actions{display:flex; gap:4px; flex-shrink:0;}
.record-edit{background:transparent; border:none; color:var(--text-muted); cursor:pointer; padding:6px; border-radius:8px;}
.record-edit:hover{color:var(--amber); background:var(--amber-dim);}
.record-del{background:transparent; border:none; color:var(--text-muted); cursor:pointer; padding:6px; border-radius:8px; flex-shrink:0;}
.record-del:hover{color:var(--coral); background:var(--coral-dim);}
.empty-state{border:1.5px dashed var(--hair); border-radius:var(--radius); padding:50px 30px; text-align:center; color:var(--text-muted);}
.empty-state .display{font-size:20px; color:var(--text); margin-bottom:8px;}
.empty-mini{color:var(--text-muted); font-size:13px; padding:20px 4px; text-align:center;}

/* ---------- Filter bar ---------- */
.filter-bar{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:22px; background:var(--surface); border:1px solid var(--hair); border-radius:14px; padding:12px 14px;}
.filter-bar input[type=text]{max-width:220px;}
.filter-bar select{max-width:200px;}
.chip{padding:8px 14px; border-radius:100px; font-size:12.5px; font-weight:600; cursor:pointer; border:1px solid var(--hair); color:var(--text-muted); background:transparent; transition:all .15s ease;}
.chip.active{background:var(--amber-dim); color:var(--amber); border-color:var(--amber);}
.filter-count{margin-left:auto; font-size:12px; color:var(--text-muted);}

.list-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:16px;}
.list-head h2{font-size:19px; font-weight:600; margin:0;}
.list-head span{color:var(--text-muted); font-size:13px;}

/* ---------- Orçamentos ---------- */
.orc-card{background:var(--surface); border:1px solid var(--hair); border-radius:var(--radius); margin-bottom:14px; padding:18px 22px;}
.orc-top{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.orc-idx{width:38px; height:38px; border-radius:10px; background:var(--bg-alt); border:1px solid var(--hair); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--amber); flex-shrink:0;}
.orc-main{flex:1; min-width:180px;}
.orc-client{font-weight:600; font-size:15px;}
.orc-meta{font-size:12px; color:var(--text-muted); margin-top:3px;}
.badge{font-size:10.5px; font-weight:700; padding:4px 10px; border-radius:100px; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap;}
.badge-pendente{background:var(--amber-dim); color:#c99a3d;}
.badge-aprovado{background:var(--emerald-dim); color:#1c7a58;}
.badge-reprovado{background:var(--coral-dim); color:#a63c2a;}
.tag-rt{background:var(--violet-dim); color:var(--violet); font-size:10.5px; padding:3px 9px; border-radius:100px; font-weight:600;}
.tag-frete{background:rgba(52,194,143,0.14); color:var(--emerald); font-size:10.5px; padding:3px 9px; border-radius:100px; font-weight:600;}
.orc-tags{display:flex; gap:6px; flex-wrap:wrap; margin-top:8px;}
.orc-figs{display:flex; gap:22px; align-items:center;}
.orc-fig{text-align:right;}
.orc-fig .l{font-size:10.5px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em;}
.orc-fig .v{font-family:'IBM Plex Mono',monospace; font-size:14px; margin-top:2px;}
.orc-actions{display:flex; gap:8px;}

/* ---------- Sales list / carnê ---------- */
.sale-card{background:var(--surface); border:1px solid var(--hair); border-radius:var(--radius); margin-bottom:16px; overflow:hidden;}
.sale-head{display:flex; align-items:center; gap:16px; padding:18px 22px; cursor:pointer;}
.sale-head:hover{background:var(--surface-2);}
.sale-idx{width:38px; height:38px; border-radius:10px; background:var(--bg-alt); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--amber); flex-shrink:0; border:1px solid var(--hair);}
.sale-main{flex:1; min-width:0;}
.sale-client{font-weight:600; font-size:15.5px;}
.sale-meta{font-size:12.5px; color:var(--text-muted); margin-top:3px;}
.sale-owner{display:inline-block; font-size:10.5px; color:var(--teal); background:rgba(52,194,143,0.1); padding:2px 7px; border-radius:100px; margin-left:8px; vertical-align:middle;}
.sale-figures{display:flex; gap:26px; align-items:center;}
.sale-fig{text-align:right;}
.sale-fig .l{font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em;}
.sale-fig .v{font-family:'IBM Plex Mono',monospace; font-size:15px; margin-top:2px;}
.sale-progress{width:64px; height:6px; border-radius:6px; background:var(--bg-alt); overflow:hidden; border:1px solid var(--hair);}
.sale-progress i{display:block; height:100%; background:var(--emerald);}
.chevron{transition:transform .25s ease; color:var(--text-muted); flex-shrink:0;}
.sale-card.open .chevron{transform:rotate(180deg);}
.del-btn{background:transparent; border:none; color:var(--text-muted); cursor:pointer; padding:6px; border-radius:8px; flex-shrink:0;}
.del-btn:hover{color:var(--coral); background:var(--coral-dim);}
.carnet{max-height:0; overflow:hidden; transition:max-height .4s ease; border-top:1px solid var(--hair); background:var(--bg-alt);}
.sale-card.open .carnet{max-height:2000px;}
.carnet-inner{padding:20px 22px 22px;}
.carnet-title{font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--text-muted); margin-bottom:14px;}
.stub{background:var(--paper); color:var(--ink); border-radius:10px; position:relative; display:grid; grid-template-columns:44px 1fr auto auto; gap:16px; align-items:center; padding:14px 18px;}
.stub:not(:last-child){margin-bottom:14px;}
.stub::before, .stub::after{content:''; position:absolute; top:50%; transform:translateY(-50%); width:16px; height:16px; border-radius:50%; background:var(--bg-alt);}
.stub::before{left:-8px;} .stub::after{right:-8px;}
.stub-num{width:32px; height:32px; border-radius:50%; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600;}
.stub-mid{min-width:0;}
.stub-due{font-size:12px; color:#5b5745; text-transform:uppercase; letter-spacing:.04em;}
.stub-client-val{font-family:'IBM Plex Mono',monospace; font-size:13.5px; margin-top:3px;}
.stub-comm{text-align:right;}
.stub-comm .l{font-size:10.5px; color:#5b5745; text-transform:uppercase; letter-spacing:.05em;}
.stub-comm .v{font-family:'IBM Plex Mono',monospace; font-size:16px; font-weight:600; margin-top:2px;}
.stub-status{display:flex; align-items:center; gap:10px;}
.status-pill{font-size:11px; font-weight:600; padding:5px 10px; border-radius:100px; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap;}
.status-pendente{background:var(--amber-dim); color:#8a6417;}
.status-atrasado{background:var(--coral-dim); color:#a63c2a;}
.status-recebido{background:var(--emerald-dim); color:#1c7a58;}
.toggle{position:relative; width:42px; height:24px; border-radius:100px; background:#d8d4c4; border:none; cursor:pointer; flex-shrink:0; transition:background .2s ease;}
.toggle::after{content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s ease; box-shadow:0 1px 3px rgba(0,0,0,.3);}
.toggle.on{background:var(--emerald);}
.toggle.on::after{transform:translateX(18px);}
.stamp{position:absolute; right:14px; top:-10px; font-family:'Fraunces',serif; font-weight:700; font-size:13px; color:var(--emerald); border:2px solid var(--emerald); border-radius:6px; padding:2px 8px; transform:rotate(-8deg); background:rgba(52,194,143,0.06); animation:stampIn .25s ease;}
@media (max-width:640px){
  .stub{grid-template-columns:36px 1fr; grid-template-areas:"num mid" "num status";}
  .stub-num{grid-area:num;} .stub-mid{grid-area:mid;}
  .stub-comm{grid-area:mid; text-align:left; margin-top:6px;}
  .stub-status{grid-area:status; margin-top:8px;}
  .sale-figures{display:none;}
}

/* ---------- Reports ---------- */
.report-groups{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; margin-bottom:24px;}
.report-group-card{background:var(--surface); border:1px solid var(--hair); border-radius:14px; padding:16px 18px;}
.report-group-card .n{font-size:13.5px; font-weight:600; margin-bottom:8px;}
.report-group-card .v{font-family:'IBM Plex Mono',monospace; font-size:18px;}
.report-group-card .s{font-size:11.5px; color:var(--text-muted); margin-top:4px;}
.report-row{display:grid; grid-template-columns:1fr auto auto auto; gap:14px; align-items:center; padding:14px 18px; background:var(--surface); border:1px solid var(--hair); border-radius:14px; margin-bottom:10px;}
.notif-item{margin-bottom:10px;}
.notif-item .report-row{margin-bottom:0;}
.email-preview{display:none; margin-top:8px; padding:14px; background:var(--surface); border:1px solid var(--hair); border-radius:14px;}
.email-preview.show{display:block;}
.email-preview iframe{width:100%; height:380px; border:1px solid var(--hair); border-radius:10px; background:#fff;}
.email-preview-actions{display:flex; align-items:center; gap:10px; margin-top:12px; flex-wrap:wrap;}
.copy-feedback{font-size:12px; color:var(--emerald);}
.report-row .who{font-size:14px; font-weight:600;}
.report-row .sub{font-size:11.5px; color:var(--text-muted); margin-top:2px;}
.report-row .val{font-family:'IBM Plex Mono',monospace; font-size:14px; text-align:right;}
@media (max-width:760px){ .report-row{grid-template-columns:1fr; text-align:left;} .report-row .val{text-align:left;} }

.chart-card{margin-top:22px;}
.chart-title{font-size:15px; font-weight:600; margin-bottom:2px;}
.chart-sub{font-size:12.5px; color:var(--text-muted); margin-bottom:18px;}

/* ---------- Acompanhamento de obra: etapas ---------- */
.etapa-add-row{display:flex; gap:10px; margin-bottom:8px; flex-wrap:wrap;}
.etapa-add-row input[type=text]{flex:1; min-width:220px;}
.mic-btn{
  background:var(--surface-2); border:1px solid var(--hair); color:var(--text); cursor:pointer;
  padding:11px 16px; border-radius:10px; font-size:13.5px; font-weight:600; white-space:nowrap;
  transition:background .15s ease, border-color .15s ease;
}
.mic-btn:hover:not(:disabled){border-color:var(--amber);}
.mic-btn:disabled{opacity:.5; cursor:not-allowed;}
.mic-btn.recording{background:var(--coral-dim); border-color:var(--coral); color:var(--coral); animation:pulseRec 1.4s ease infinite;}
@keyframes pulseRec{0%,100%{opacity:1;} 50%{opacity:.6;}}
.gravacao-status{font-size:12.5px; color:var(--text-muted); min-height:18px; margin:8px 0 4px;}

.candidatos-panel{margin-top:12px; padding:14px; background:var(--bg-alt); border:1px solid var(--hair); border-radius:12px;}
.candidatos-title{font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin-bottom:10px;}
.etapa-candidate{display:flex; gap:8px; align-items:center; margin-bottom:8px;}
.etapa-candidate input{flex:1;}
.candidatos-actions{display:flex; gap:10px; margin-top:10px;}

.etapa-item{
  display:grid; grid-template-columns:auto 1fr auto auto; gap:14px; align-items:center;
  padding:14px 16px; background:var(--surface); border:1px solid var(--hair); border-radius:12px; margin-bottom:8px;
}
.etapa-item.done{border-color:rgba(52,194,143,0.3); background:rgba(52,194,143,0.05);}
.etapa-check{
  width:26px; height:26px; border-radius:8px; border:2px solid var(--hair); background:transparent;
  cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .15s ease;
}
.etapa-item.done .etapa-check{background:var(--emerald); border-color:var(--emerald);}
.etapa-check.sending{cursor:wait; opacity:.6;}
.etapa-desc{font-size:14.5px; font-weight:500;}
.etapa-item.done .etapa-desc{text-decoration:line-through; color:var(--text-muted);}
.etapa-meta{font-size:12px; color:var(--text-muted); margin-top:3px;}
.etapa-email-sending{animation:pulseSending 1.1s ease-in-out infinite;}
@keyframes pulseSending{0%,100%{opacity:1;} 50%{opacity:.5;}}
@media (max-width:640px){ .etapa-item{grid-template-columns:auto 1fr; grid-template-areas:"check desc" "check meta" "check email" "check del";} }

@keyframes riseIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
@keyframes stampIn{from{opacity:0; transform:rotate(-8deg) scale(1.4);} to{opacity:1; transform:rotate(-8deg) scale(1);}}
