/* ============================================================
   VOZ DA OPERAÇÃO — style.css
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;background:#f0f4f9;color:#0d1f38;font-size:15px;line-height:1.6;min-height:100vh;overflow-x:hidden}
button{cursor:pointer;font-family:inherit}
input,textarea,select{font-family:inherit}
table{border-collapse:collapse}

:root{
  --blue:#04336b;--blue2:#0f5bbf;--blue3:#3a8ee6;--blue-soft:#e8f2fd;
  --white:#fff;--bg:#f0f4f9;--bg2:#e4ecf7;--line:#cddaee;
  --text:#0d1f38;--text2:#3a5572;--text3:#7a93b0;
  --green:#0e7a45;--green-bg:#e6f5ee;--green-line:#9fdfc0;
  --orange:#c47800;--orange-bg:#fff3da;--orange-line:#f5d898;
  --red:#c01c1c;--red-bg:#fdeaea;--red-line:#f5b8b8;
  --purple:#6b3fa0;--purple-bg:#f0e8fa;
  --radius:14px;--radius-sm:9px;
  --sh:0 2px 16px rgba(4,51,107,.09);--sh2:0 6px 28px rgba(4,51,107,.15);
}

/* ---------- utilitários ---------- */
.hidden{display:none!important}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh)}
.card.pad{padding:1.35rem}
.card-h{font-weight:700;color:var(--blue);font-size:1rem;margin-bottom:.75rem;display:flex;gap:8px;align-items:center}
.card-h.center{justify-content:center}
.container{max-width:1140px;margin:0 auto;padding:2rem 1.5rem}
.container.tight{padding:1.35rem 1.5rem}
.strip{background:#fff;border-top:1px solid var(--line)}
.text-muted{color:var(--text3);font-size:.85rem}
.muted-p{font-size:.88rem;color:var(--text3);margin-bottom:1rem;line-height:1.55}
.muted-p.center{text-align:center}
.center{text-align:center}
.big-emoji{font-size:3rem;margin-bottom:.5rem}
.divider{border:none;border-top:1px solid var(--line);margin:1.75rem 0}
.flex-btw{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.flex-gap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mb-1{margin-bottom:1rem}.mt-1{margin-top:1rem}
.req{color:var(--red)}
.mini-h{font-size:.88rem;font-weight:700;color:var(--text2);margin-bottom:.6rem}
.code-hint{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 11px;color:var(--blue2);margin-bottom:.6rem;display:inline-block}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.btn-row-center{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1.15rem}

/* ---------- badges ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700;white-space:nowrap}
.badge-blue{background:var(--blue-soft);color:var(--blue2)}
.badge-green{background:var(--green-bg);color:var(--green)}
.badge-orange{background:var(--orange-bg);color:var(--orange)}
.badge-red{background:var(--red-bg);color:var(--red)}
.badge-purple{background:var(--purple-bg);color:var(--purple)}
.badge-gray{background:#eef1f6;color:var(--text3)}

/* ---------- banner ---------- */
#attn-banner{background:var(--red);color:#fff;padding:.65rem 1.5rem;display:none;align-items:center;gap:10px;font-size:.88rem;font-weight:600;animation:pulse 2s infinite}
#attn-banner .cnt{background:#fff;color:var(--red);border-radius:20px;padding:1px 9px;font-weight:800;font-size:12px}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.87}}

/* ---------- nav ---------- */
.nav{background:var(--blue);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:60px;position:sticky;top:0;z-index:300;box-shadow:0 2px 20px rgba(4,51,107,.3)}
.nav-brand{display:flex;align-items:center;gap:10px;cursor:pointer}
.nav-icon{width:36px;height:36px;background:var(--blue3);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.nav-title{color:#fff;font-size:16px;font-weight:700;letter-spacing:-.2px}
.nav-sub{color:rgba(255,255,255,.5);font-size:10.5px;letter-spacing:.3px}
.nav-links{display:flex;gap:3px;align-items:center}
.nav-link{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:8px;border:none;background:transparent;color:rgba(255,255,255,.6);font-size:13px;font-weight:600;transition:.15s;position:relative;white-space:nowrap}
.nav-link:hover{background:rgba(255,255,255,.1);color:#fff}
.nav-link.active{background:rgba(255,255,255,.18);color:#fff}
.nav-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid var(--blue);display:none}
.nav-dot.show{display:block}
.nav-user{display:flex;align-items:center;gap:8px;padding:5px 12px;background:rgba(255,255,255,.12);border-radius:20px;margin-left:8px;cursor:pointer;transition:.15s}
.nav-user:hover{background:rgba(255,255,255,.22)}
.nav-user-avatar{width:26px;height:26px;border-radius:50%;background:var(--blue3);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-user-name{color:#fff;font-size:12px;font-weight:600;line-height:1.2}
.nav-user-role{color:rgba(255,255,255,.5);font-size:10px;line-height:1.2}

/* ---------- páginas ---------- */
.page{display:none;animation:fadeUp .22s ease}
.page.active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ---------- hero ---------- */
.home-hero{background:linear-gradient(135deg,var(--blue) 0%,#0a4898 55%,var(--blue2) 100%);color:#fff;padding:2.75rem 1.5rem 2.5rem;text-align:center;position:relative;overflow:hidden}
.home-hero::before{content:'';position:absolute;width:400px;height:400px;border-radius:50%;background:rgba(255,255,255,.04);top:-120px;right:-80px;pointer-events:none}
.home-hero h1{font-size:clamp(1.7rem,3.5vw,2.7rem);font-weight:800;line-height:1.15;margin-bottom:.6rem;letter-spacing:-.5px;position:relative}
.home-hero h1 span{color:#7ec8ff}
.home-hero p{font-size:.97rem;opacity:.78;max-width:490px;margin:0 auto 1.5rem;position:relative}
.cd-picker{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem;position:relative}
.cd-chip{padding:7px 16px;border-radius:20px;border:1.5px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);font-size:12.5px;font-weight:600;transition:.15s}
.cd-chip:hover{background:rgba(255,255,255,.2)}
.cd-chip.active{background:#fff;color:var(--blue);border-color:#fff}
.entry-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}
.entry-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:1.25rem 2rem;border-radius:var(--radius);border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff;min-width:185px;transition:.18s}
.entry-btn:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5);transform:translateY(-3px)}
.entry-btn .eb-icon{font-size:2rem}
.entry-btn .eb-title{font-size:1rem;font-weight:700}
.entry-btn .eb-sub{font-size:11.5px;opacity:.72;text-align:center;line-height:1.4}
.entry-btn.primary{background:#fff;color:var(--blue);border-color:#fff}
.entry-btn.primary:hover{background:#e8f2fd}
.entry-btn.primary .eb-sub{opacity:.6}

/* ---------- status cards ---------- */
.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.status-card{border-radius:12px;padding:.9rem 1.1rem;border:1.5px solid var(--line);background:#fff;display:flex;gap:11px;align-items:center;box-shadow:var(--sh)}
.status-card .sc-icon{font-size:1.5rem;flex-shrink:0}
.status-card .sc-title{font-size:.85rem;font-weight:700;color:var(--blue);line-height:1.3}
.status-card .sc-sub{font-size:11.5px;color:var(--text3);margin-top:1px}
.status-card.open{border-color:var(--green-line);background:var(--green-bg)}
.status-card.open .sc-title{color:var(--green)}
.status-card.warn{border-color:var(--orange-line);background:var(--orange-bg)}
.status-card.warn .sc-title{color:var(--orange)}
.status-card.closed{opacity:.75}

/* ---------- canais ---------- */
.channels-info{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.channel-card{border-radius:12px;padding:1.1rem 1.25rem;display:flex;gap:12px;align-items:flex-start;border:1.5px solid transparent}
.channel-card.fast{background:#fff8e6;border-color:var(--orange-line)}
.channel-card.trim{background:var(--blue-soft);border-color:#b5d4f5}
.channel-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}
.channel-title{font-weight:700;font-size:.93rem;margin-bottom:3px}
.channel-title.amber{color:#7a4c00}.channel-title.navy{color:var(--blue)}
.channel-desc{font-size:.82rem;color:var(--text2);line-height:1.5}
.channel-tag{font-size:11px;font-weight:700;margin-top:6px;display:inline-block;padding:2px 9px;border-radius:20px}
.channel-card.fast .channel-tag{background:var(--orange-line);color:#7a4c00}
.channel-card.trim .channel-tag{background:#b5d4f5;color:var(--blue)}

/* ---------- seções ---------- */
.sec-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}
.sec-title{font-size:1.1rem;font-weight:700;color:var(--blue);margin-bottom:2px}
.sec-sub{font-size:.85rem;color:var(--text3)}

/* ---------- porta-vozes ---------- */
.vp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:12px}
.vp-card{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:1rem 1.1rem;display:flex;align-items:center;gap:12px;box-shadow:var(--sh);transition:.15s;position:relative}
.vp-card:hover{border-color:var(--blue3);box-shadow:var(--sh2)}
.vp-card.elected{border-color:var(--blue2);background:var(--blue-soft)}
.vp-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--blue2),var(--blue3));color:#fff;font-size:1.05rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.vp-name{font-weight:700;font-size:.92rem;color:var(--blue);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vp-meta{font-size:11.5px;color:var(--text3);margin-top:1px}
.vp-stat-row{display:flex;align-items:center;justify-content:space-between;margin-top:6px}
.vp-votes{font-size:11.5px;font-weight:700;color:var(--blue2)}
.vp-pct{font-size:11px;font-weight:700;color:var(--blue2)}
.vote-bar{height:4px;background:var(--bg2);border-radius:2px;margin-top:5px}
.vote-bar-fill{height:100%;border-radius:2px;background:var(--blue2);transition:width .8s}

/* ---------- info box ---------- */
.info-box{display:flex;gap:10px;align-items:flex-start;padding:.9rem 1.1rem;border-radius:var(--radius-sm);font-size:.85rem;border:1.5px solid;line-height:1.5}
.info-box.blue{background:var(--blue-soft);border-color:#b5d4f5;color:var(--blue)}
.info-box.orange{background:var(--orange-bg);border-color:var(--orange-line);color:#7a4c00}
.info-box.green{background:var(--green-bg);border-color:var(--green-line);color:#0a5530}
.info-box.red{background:var(--red-bg);border-color:var(--red-line);color:#8a1010}
.info-box-icon{font-size:1rem;flex-shrink:0;margin-top:1px}

/* ---------- wizard ---------- */
.wizard-shell{max-width:700px;margin:0 auto;padding:2rem 1.5rem}
.wizard-header{text-align:center;margin-bottom:1.75rem}
.wizard-header h2{font-size:1.4rem;font-weight:800;color:var(--blue);margin-bottom:4px}
.wizard-header p{font-size:.9rem;color:var(--text3)}
.wiz-progress{display:flex;align-items:flex-start;justify-content:center;margin-bottom:1.75rem}
.wiz-step{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;max-width:130px;position:relative}
.wiz-step::before{content:'';position:absolute;top:14px;left:calc(50% + 18px);right:calc(-50% + 18px);height:2px;background:var(--line)}
.wiz-step:last-child::before{display:none}
.wiz-num{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);background:#fff;color:var(--text3);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;transition:.2s}
.wiz-step.active .wiz-num{background:var(--blue);border-color:var(--blue);color:#fff}
.wiz-step.done .wiz-num{background:var(--green);border-color:var(--green);color:#fff}
.wiz-step.done::before,.wiz-step.active::before{background:var(--blue2)}
.wiz-label{font-size:10.5px;color:var(--text3);font-weight:600;text-align:center;line-height:1.25}
.wiz-step.active .wiz-label{color:var(--blue)}
.wiz-step.done .wiz-label{color:var(--green)}
.wiz-actions{display:flex;gap:10px;margin-top:1.35rem;flex-wrap:wrap}

/* ---------- choice cards ---------- */
.choice-list{display:flex;flex-direction:column;gap:12px}
.choice-card{padding:1.25rem 1.5rem;display:flex;align-items:center;gap:16px;text-align:left;border:2px solid var(--line);width:100%;background:#fff;border-radius:var(--radius);box-shadow:var(--sh);transition:.15s}
.choice-card:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.choice-card.amber:hover{border-color:var(--orange)}
.choice-card.navy:hover{border-color:var(--blue2)}
.cc-icon{font-size:2.1rem;flex-shrink:0}
.cc-body{flex:1;min-width:0}
.cc-title{font-weight:700;color:var(--blue);font-size:1rem;margin-bottom:3px}
.cc-desc{font-size:.85rem;color:var(--text3);line-height:1.5}
.cc-arrow{color:var(--text3);font-size:1.4rem;flex-shrink:0}

/* ---------- temas ---------- */
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.theme-tile{background:#fff;border:2px solid var(--line);border-radius:12px;padding:.9rem;cursor:pointer;text-align:center;transition:.15s}
.theme-tile:hover{border-color:var(--blue3);transform:translateY(-2px);box-shadow:var(--sh)}
.theme-tile.sel{border-color:var(--blue2);background:var(--blue-soft)}
.theme-tile .tt-icon{font-size:1.7rem;margin-bottom:6px}
.theme-tile .tt-name{font-size:.82rem;font-weight:700;color:var(--blue)}
.theme-tile .tt-sup{font-size:10px;color:var(--text3);margin-top:3px}

/* ---------- criticidade ---------- */
.crit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.crit-tile{border:2px solid var(--line);border-radius:12px;padding:1rem .75rem;cursor:pointer;text-align:center;transition:.15s;background:#fff}
.crit-tile:hover{transform:translateY(-2px);box-shadow:var(--sh)}
.crit-tile .ct-icon{font-size:1.5rem;margin-bottom:5px}
.crit-tile .ct-name{font-size:.88rem;font-weight:700;margin-bottom:2px;color:var(--text2)}
.crit-tile .ct-time{font-size:11px;color:var(--text3);font-weight:600}
.crit-tile.sel.baixa{border-color:var(--green);background:var(--green-bg)}
.crit-tile.sel.baixa .ct-name{color:var(--green)}
.crit-tile.sel.media{border-color:var(--orange);background:var(--orange-bg)}
.crit-tile.sel.media .ct-name{color:var(--orange)}
.crit-tile.sel.alta{border-color:var(--red);background:var(--red-bg)}
.crit-tile.sel.alta .ct-name{color:var(--red)}

/* ---------- formulários ---------- */
.form-group{margin-bottom:1rem}
.form-label{display:block;font-size:11.5px;font-weight:700;color:var(--text2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.4px}
.form-input,.form-textarea,.form-select{width:100%;padding:11px 13px;border:2px solid var(--line);border-radius:var(--radius-sm);font-size:.92rem;color:var(--text);background:#fff;outline:none;transition:.15s}
.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--blue2);box-shadow:0 0 0 4px rgba(15,91,191,.1)}
.form-input.ok{border-color:var(--green)}
.form-input.err{border-color:var(--red)}
.form-textarea{resize:vertical;min-height:88px;line-height:1.6}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237a93b0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;appearance:none}
.form-input.compact,.form-select.compact{padding:8px 12px;font-size:13px;width:auto;min-width:170px}
.form-select.compact{padding-right:30px}
.char-hint{font-size:11.5px;text-align:right;margin-top:4px;color:var(--text3)}
.char-hint.ok{color:var(--green)}.char-hint.warn{color:var(--orange)}
.field-hint{font-size:11.5px;color:var(--text3);margin-top:4px}
.field-hint.ok{color:var(--green)}.field-hint.err{color:var(--red)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.url-field{max-width:560px}
.check-list{display:flex;flex-direction:column;gap:9px;margin-top:6px}
.check-item{display:flex;align-items:center;gap:9px;font-size:.88rem;cursor:pointer}
.check-item input{width:17px;height:17px;cursor:pointer;accent-color:var(--blue2)}

/* ---------- card de colaborador ---------- */
.emp-card{display:flex;align-items:center;gap:12px;padding:.9rem 1rem;background:var(--green-bg);border:1.5px solid var(--green-line);border-radius:11px}
.emp-card.err{background:var(--red-bg);border-color:var(--red-line)}
.emp-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--green),#3aa870);color:#fff;font-size:.9rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.emp-card.err .emp-avatar{background:var(--red)}
.emp-name{font-weight:700;font-size:.92rem;color:var(--blue)}
.emp-meta{font-size:12px;color:var(--text2);margin-top:1px}

/* ---------- escala pesquisa ---------- */
.scale-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.scale-btn{flex:1;min-width:74px;padding:9px 5px;border:2px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:12px;font-weight:600;text-align:center;color:var(--text3);transition:.13s}
.scale-btn:hover{border-color:var(--blue3);color:var(--blue)}
.scale-btn.s0{background:#0e7a45;border-color:#0e7a45;color:#fff}
.scale-btn.s1{background:#3a8ee6;border-color:#3a8ee6;color:#fff}
.scale-btn.s2{background:#c47800;border-color:#c47800;color:#fff}
.scale-btn.s3{background:#d05010;border-color:#d05010;color:#fff}
.scale-btn.s4{background:#b01010;border-color:#b01010;color:#fff}
.survey-head{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-radius:12px;padding:1rem 1.25rem;display:flex;align-items:center;gap:12px;margin-bottom:1.25rem}
.survey-head .sh-icon{font-size:1.6rem}
.survey-head .sh-sub{font-size:11px;opacity:.72}
.survey-head .sh-title{font-size:1rem;font-weight:700}
.q-card{padding:1.1rem;margin-bottom:10px}
.q-num{font-size:11px;color:var(--text3);margin-bottom:3px}
.q-text{font-weight:600;color:var(--blue);font-size:.9rem;line-height:1.5}

/* ---------- confirmação ---------- */
.confirm-box{background:var(--bg);border-radius:10px;padding:.85rem 1rem;margin-bottom:.7rem}
.confirm-box.last{margin-bottom:1.25rem}
.cb-label{font-size:10.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.cb-val{font-weight:600;color:var(--text)}
.cb-val.small{font-size:.88rem;line-height:1.6;font-weight:400;color:var(--text2)}

/* ---------- botões ---------- */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:var(--radius-sm);background:var(--blue);color:#fff;border:none;font-weight:700;font-size:.9rem;flex:1;transition:.15s}
.btn-primary:hover{opacity:.88;transform:translateY(-1px)}
.btn-primary:disabled{opacity:.35;cursor:not-allowed;transform:none}
.btn-primary.shrink{flex:0 0 auto}
.btn-primary.full{width:100%;flex:none}
.btn-primary.sm{padding:9px 16px;font-size:13px}
.btn-primary.danger{background:var(--red)}
.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 20px;border-radius:var(--radius-sm);border:2px solid var(--line);background:#fff;color:var(--text2);font-weight:600;font-size:.88rem;transition:.15s;flex:0 0 auto}
.btn-secondary:hover{border-color:var(--blue3);color:var(--blue)}
.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1.5px solid var(--line);background:#fff;color:var(--text2);font-size:12.5px;font-weight:600;transition:.14s;white-space:nowrap}
.btn-ghost:hover{border-color:var(--blue3);color:var(--blue)}
.btn-ghost.danger{border-color:var(--red-line);color:var(--red)}
.btn-ghost.danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn-icon{width:31px;height:31px;border-radius:7px;border:1.5px solid var(--line);background:#fff;color:var(--text3);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;transition:.13s}
.btn-icon.del:hover{border-color:var(--red);color:var(--red);background:var(--red-bg)}
.btn-icon:hover{border-color:var(--blue3);color:var(--blue)}

/* ---------- sucesso ---------- */
.wiz-success{text-align:center;padding:2.5rem 1rem}
.wiz-success .suc-icon{font-size:4rem;margin-bottom:.75rem}
.wiz-success h3{font-size:1.5rem;font-weight:800;color:var(--blue);margin-bottom:.5rem}
.wiz-success p{color:var(--text3);max-width:400px;margin:0 auto 1.5rem;line-height:1.7}

/* ---------- página header ---------- */
.page-header{background:#fff;border-bottom:1px solid var(--line);padding:1.15rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.dash-title{font-size:1.1rem;font-weight:800;color:var(--blue)}
.dash-sub{font-size:.83rem;color:var(--text3)}

/* ---------- pontos ---------- */
.occ-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:10px;margin-bottom:1.5rem}
.occ-kpi{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:1rem;box-shadow:var(--sh);text-align:center}
.occ-kpi .kv{font-size:1.85rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.occ-kpi .kl{font-size:11.5px;color:var(--text3);margin-top:4px}
.filter-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}
.pill-tabs{display:flex;gap:5px;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap}
.pill-tab{padding:7px 15px;border-radius:7px;border:none;background:transparent;font-size:12.5px;font-weight:600;color:var(--text3);transition:.14s;white-space:nowrap}
.pill-tab:hover{color:var(--blue)}
.pill-tab.active{background:#fff;color:var(--blue);box-shadow:0 1px 5px rgba(4,51,107,.1)}
.occ-list{display:flex;flex-direction:column;gap:10px}
.occ-wrap{border-radius:12px;overflow:hidden;box-shadow:var(--sh)}
.occ-card{background:#fff;border:1.5px solid var(--line);border-radius:12px;display:flex;align-items:stretch;transition:.15s}
.occ-card:hover{box-shadow:var(--sh2)}
.occ-card.c-open{border-left:4px solid var(--blue3)}
.occ-card.c-warn{border-left:4px solid var(--orange);background:#fffdf5}
.occ-card.c-expired{border-left:4px solid var(--red);background:#fff8f8}
.occ-card.c-done{border-left:4px solid var(--green);opacity:.86}
.occ-card.has-note{border-bottom-left-radius:0;border-bottom-right-radius:0}
.occ-inner{display:flex;align-items:flex-start;gap:13px;padding:1rem 1.1rem;flex:1;min-width:0}
.occ-icon{width:38px;height:38px;border-radius:9px;flex-shrink:0;background:var(--blue-soft);color:var(--blue2);display:flex;align-items:center;justify-content:center;font-size:1.15rem}
.occ-body{flex:1;min-width:0}
.occ-theme-label{font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.occ-title{font-weight:700;font-size:.93rem;color:var(--blue);margin-bottom:2px}
.occ-desc{font-size:.83rem;color:var(--text2);line-height:1.5;margin-bottom:7px}
.occ-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.occ-author,.occ-date,.occ-place{font-size:11.5px;color:var(--text3)}
.occ-sup{font-size:11.5px;color:var(--blue2);font-weight:600}
.occ-timer{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.t-ok{background:var(--green-bg);color:var(--green)}
.t-warn{background:var(--orange-bg);color:var(--orange);animation:blink .9s step-end infinite}
.t-expired{background:var(--red-bg);color:var(--red);animation:blink .65s step-end infinite}
.t-done{background:var(--green-bg);color:var(--green)}
@keyframes blink{50%{opacity:.42}}
.occ-actions{display:flex;flex-direction:column;gap:6px;padding:.8rem .9rem;justify-content:center;flex-shrink:0}
.btn-tratar{padding:8px 16px;border-radius:8px;border:none;background:var(--blue);color:#fff;font-size:12.5px;font-weight:700;white-space:nowrap;transition:.13s}
.btn-tratar:hover{opacity:.85}
.occ-resolution{background:var(--green-bg);border:1.5px solid var(--green-line);border-top:none;border-radius:0 0 12px 12px;padding:.7rem 1.1rem;font-size:.82rem;color:#0a5530;line-height:1.5}
.empty-state{text-align:center;padding:3rem 1rem}
.empty-state .ei{font-size:3rem;margin-bottom:.75rem}
.empty-state h4{font-size:1rem;font-weight:700;color:var(--blue);margin-bottom:.3rem}

/* ---------- login ---------- */
.login-wrap{max-width:395px;margin:3rem auto;padding:0 1rem}
.login-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2rem;box-shadow:var(--sh2)}
.login-icon{text-align:center;font-size:3rem;margin-bottom:1rem}
.login-title{text-align:center;font-size:1.2rem;font-weight:800;color:var(--blue);margin-bottom:.3rem}
.login-sub{text-align:center;font-size:.85rem;color:var(--text3);margin-bottom:1.5rem}
.login-err{color:var(--red);font-size:12.5px;margin-bottom:10px;background:var(--red-bg);border:1px solid var(--red-line);border-radius:8px;padding:8px 11px}

/* ---------- dashboard ---------- */
.dash-header{background:#fff;border-bottom:1px solid var(--line);padding:1.1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}
.dash-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.dash-tabs{background:#fff;border-bottom:1px solid var(--line);display:flex;padding:0 1.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch}
.dash-tab{padding:12px 17px;border-bottom:3px solid transparent;font-size:13px;font-weight:600;color:var(--text3);background:none;border-left:none;border-right:none;border-top:none;transition:.13s;white-space:nowrap}
.dash-tab:hover{color:var(--blue)}
.dash-tab.active{color:var(--blue);border-bottom-color:var(--blue2)}
.dash-panel{display:none;animation:fadeUp .2s ease}
.dash-panel.active{display:block}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin-bottom:1.75rem}
.kpi-card{border-radius:12px;padding:1.1rem 1.2rem}
.kpi-card.dark{background:var(--blue);color:#fff}
.kpi-card.light{background:#fff;border:1.5px solid var(--line);box-shadow:var(--sh)}
.kpi-val{font-size:1.8rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.kpi-val.sm{font-size:1.05rem}
.kpi-card.dark .kpi-val{color:#fff}
.kpi-card.light .kpi-val{color:var(--blue2)}
.kpi-lbl{font-size:11.5px;margin-top:5px}
.kpi-card.dark .kpi-lbl{opacity:.65}
.kpi-card.light .kpi-lbl{color:var(--text3)}

/* ---------- gráficos ---------- */
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.chart-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--sh)}
.chart-title{font-size:.95rem;font-weight:700;color:var(--blue);margin-bottom:2px}
.chart-sub{font-size:.8rem;color:var(--text3);margin-bottom:1rem}
.bar-chart{display:flex;gap:8px;align-items:flex-end;height:150px}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.bar-val{font-size:11.5px;font-weight:700;color:var(--blue2)}
.bar-bg{width:100%;background:var(--bg2);border-radius:6px 6px 0 0;flex:1;display:flex;align-items:flex-end;overflow:hidden}
.bar-fill{width:100%;border-radius:5px 5px 0 0;background:linear-gradient(180deg,var(--blue3),var(--blue));transition:height .7s ease}
.bar-lbl{font-size:10px;color:var(--text3);text-align:center;line-height:1.3;word-break:break-word}
.donut-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.donut-info{min-width:0}
.donut-info .dn{font-size:13px;font-weight:700;color:var(--blue)}
.donut-info .ds{font-size:11.5px;color:var(--text3)}
.rank-list{display:flex;flex-direction:column}
.rank-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--bg2)}
.rank-row:last-child{border-bottom:none}
.rank-num{width:26px;height:26px;border-radius:50%;background:var(--bg2);color:var(--blue2);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rank-body{flex:1;min-width:0}
.rank-name{font-size:13px;font-weight:600;color:var(--blue);margin-bottom:4px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.rank-bar-bg{height:7px;background:var(--bg2);border-radius:4px}
.rank-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--blue2),var(--blue3));transition:width .7s}
.rank-score{font-size:.92rem;font-weight:800;color:var(--blue2);min-width:30px;text-align:right}
.sug-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--bg2)}
.sug-item:last-child{border-bottom:none;padding-bottom:0}
.sug-dot{width:7px;height:7px;border-radius:50%;background:var(--blue3);margin-top:8px;flex-shrink:0}
.sug-text{font-size:.85rem;color:var(--text);font-style:italic;line-height:1.6}
.sug-meta{font-size:11px;color:var(--text3);margin-top:3px}
.crit-stat-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--bg2)}
.crit-stat-row:last-child{border-bottom:none}
.crit-dot{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}

/* ---------- tabelas ---------- */
.data-table{width:100%;font-size:13px}
.data-table th{text-align:left;padding:9px 10px;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--line);background:var(--bg);white-space:nowrap}
.data-table td{padding:9px 10px;border-bottom:1px solid var(--bg2);color:var(--text)}
.data-table tr:last-child td{border-bottom:none}
.data-table tbody tr:hover td{background:var(--bg)}

/* ---------- config ---------- */
.cfg-section{margin-bottom:1.75rem}
.cfg-section-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.85rem;flex-wrap:wrap;gap:.6rem}
.cfg-section-title{font-size:.98rem;font-weight:700;color:var(--blue)}
.cfg-section-sub{font-size:.8rem;color:var(--text3)}
.list-item{display:flex;align-items:center;gap:12px;padding:.85rem 1rem;background:#fff;border:1.5px solid var(--line);border-radius:10px;margin-bottom:8px;box-shadow:var(--sh)}
.list-avatar{width:40px;height:40px;border-radius:50%;color:#fff;font-size:.88rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.list-avatar.gerente{background:linear-gradient(135deg,var(--purple),#8a5fc0)}
.list-avatar.coordenador{background:linear-gradient(135deg,var(--blue2),var(--blue3))}
.list-avatar.supervisor{background:linear-gradient(135deg,var(--green),#3aa870)}
.list-avatar.admin{background:linear-gradient(135deg,#333,#666)}
.list-avatar.emp{background:linear-gradient(135deg,var(--blue2),var(--blue3))}
.list-body{flex:1;min-width:0}
.list-name{font-weight:700;font-size:.9rem;color:var(--blue);display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.list-meta{font-size:12px;color:var(--text3);margin-top:1px}
.scroll-list{max-height:420px;overflow-y:auto;padding-right:4px}

/* ---------- editor de temas ---------- */
.theme-editor-list{display:flex;flex-direction:column;gap:8px}
.theme-editor-item{background:#fff;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 1px 6px rgba(4,51,107,.06)}
.theme-editor-header{display:flex;align-items:center;gap:9px;padding:.7rem .9rem;transition:.13s;flex-wrap:wrap}
.theme-editor-header.clickable{cursor:pointer}
.theme-editor-header.clickable:hover{background:var(--bg)}
.theme-editor-icon-input{width:40px;padding:6px;border:1.5px solid var(--line);border-radius:6px;text-align:center;font-size:1rem;background:#fff;flex-shrink:0}
.theme-editor-name-input{flex:1;min-width:110px;border:1.5px solid transparent;background:transparent;font-weight:600;color:var(--blue);font-size:.9rem;outline:none;padding:6px 8px;border-radius:6px;transition:.13s}
.theme-editor-name-input:hover{background:var(--bg)}
.theme-editor-name-input:focus{border-color:var(--blue2);background:#fff}
.theme-editor-toggle{color:var(--text3);font-size:.9rem;transition:.2s}
.theme-editor-toggle.open{transform:rotate(180deg)}
.theme-editor-body{display:none;border-top:1px solid var(--bg2);padding:.85rem .9rem;background:var(--bg)}
.theme-editor-body.open{display:block}
.question-editor-row{display:flex;gap:8px;align-items:center;margin-bottom:7px}
.qe-num{font-size:11px;font-weight:700;color:var(--text3);width:18px;text-align:right;flex-shrink:0}
.question-editor-row input{flex:1;padding:8px 10px;border:1.5px solid var(--line);border-radius:7px;font-size:.85rem;background:#fff;outline:none;color:var(--text);transition:.13s;min-width:0}
.question-editor-row input:focus{border-color:var(--blue2)}
.sup-select{padding:7px 10px;border:1.5px solid var(--line);border-radius:7px;font-size:12px;background:#fff;color:var(--text2);outline:none;max-width:185px}
.sup-select:focus{border-color:var(--blue2)}
.cd-tag{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:20px;background:var(--bg2);color:var(--blue2);flex-shrink:0}

/* ---------- versões ---------- */
.version-history{border:1.5px solid var(--line);border-radius:10px;overflow:hidden}
.version-row{display:flex;align-items:center;gap:12px;padding:.75rem 1rem;border-bottom:1px solid var(--bg2);background:#fff;flex-wrap:wrap}
.version-row:last-child{border-bottom:none}
.version-row.current{background:var(--blue-soft)}
.version-num{font-size:11px;font-weight:700;color:var(--blue2);width:64px;flex-shrink:0}
.version-date{font-size:12px;color:var(--text3);flex:1;min-width:105px}
.version-desc{font-size:12.5px;color:var(--text);flex:2;min-width:125px}
.version-badge{display:inline-flex;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;background:var(--orange-bg);color:#8a5000;border:1px solid var(--orange-line)}
.btn-restore{padding:5px 12px;border-radius:6px;border:1.5px solid var(--blue2);background:#fff;color:var(--blue2);font-size:11.5px;font-weight:700;transition:.13s}
.btn-restore:hover{background:var(--blue2);color:#fff}

/* ---------- e-mails ---------- */
.email-row{display:flex;align-items:center;gap:12px;padding:.8rem 1rem;background:#fff;border:1.5px solid var(--line);border-radius:10px;margin-bottom:8px;flex-wrap:wrap;box-shadow:var(--sh)}
.email-info{flex:1;min-width:155px}
.email-addr{font-weight:600;font-size:.88rem;color:var(--blue);word-break:break-all}
.email-name{font-size:11.5px;color:var(--text3)}
.email-events{display:flex;gap:6px;flex-wrap:wrap}
.evt-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;border:1.5px solid var(--line);background:#fff;color:var(--text3);cursor:pointer;transition:.13s;user-select:none}
.evt-chip.on.new{background:var(--blue-soft);border-color:var(--blue2);color:var(--blue2)}
.evt-chip.on.warn{background:var(--orange-bg);border-color:var(--orange);color:var(--orange)}
.evt-chip.on.exp{background:var(--red-bg);border-color:var(--red);color:var(--red)}

/* ---------- eleições / rodadas ---------- */
.period-card{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:1.25rem;box-shadow:var(--sh)}
.period-card.open{border-color:var(--green-line);background:linear-gradient(180deg,var(--green-bg),#fff 60%)}
.period-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.period-title{font-size:1.05rem;font-weight:800;color:var(--blue)}
.period-meta{font-size:12.5px;color:var(--text3);margin-top:2px}
.countdown{display:flex;gap:10px;flex-wrap:wrap;margin:1rem 0}
.cd-box{background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:.8rem 1.1rem;text-align:center;min-width:82px}
.cd-num{font-size:1.6rem;font-weight:800;color:var(--blue);line-height:1;font-variant-numeric:tabular-nums}
.cd-lbl{font-size:10.5px;color:var(--text3);margin-top:3px;text-transform:uppercase;letter-spacing:.4px}
.progress-track{height:8px;background:var(--bg2);border-radius:4px;overflow:hidden;margin-top:.75rem}
.progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--blue2),var(--blue3));transition:width .8s}
.hist-card{background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:1rem 1.15rem;margin-bottom:9px;box-shadow:var(--sh)}
.hist-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.65rem}
.hist-title{font-weight:700;font-size:.92rem;color:var(--blue)}
.hist-meta{font-size:11.5px;color:var(--text3)}
.winner-row{display:flex;align-items:center;gap:10px;padding:7px 0}
.winner-medal{font-size:1.1rem;flex-shrink:0}
.winner-name{font-size:.88rem;font-weight:700;color:var(--blue)}
.winner-meta{font-size:11.5px;color:var(--text3)}

/* ---------- QR codes ---------- */
.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.qr-card{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:1.1rem;box-shadow:var(--sh);text-align:center;position:relative}
.qr-card-label{font-weight:700;font-size:.92rem;color:var(--blue);margin-bottom:2px}
.qr-card-meta{font-size:11.5px;color:var(--text3);margin-bottom:.75rem}
.qr-img{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px;display:inline-block;line-height:0}
.qr-url{font-size:10.5px;color:var(--text3);word-break:break-all;margin:.6rem 0;line-height:1.4}
.qr-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.qr-del{position:absolute;top:9px;right:9px}

/* ---------- modais ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(4,51,107,.5);z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeUp .18s ease;overflow-y:auto}
.modal{background:#fff;border-radius:var(--radius);max-width:470px;width:100%;padding:1.75rem;box-shadow:0 20px 60px rgba(4,51,107,.25);margin:auto}
.modal.sm{max-width:400px}
.modal-title{font-size:1.08rem;font-weight:700;color:var(--blue);margin-bottom:1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.modal-close{background:none;border:none;font-size:1.2rem;color:var(--text3);padding:2px 6px;line-height:1}
.modal-actions{display:flex;gap:10px;margin-top:1.35rem}
.preview-box{background:var(--bg);border-radius:10px;padding:1rem;margin-bottom:1.25rem}
.vote-modal-candidate{display:flex;align-items:center;gap:14px;padding:1rem 1.1rem;background:var(--blue-soft);border:2px solid var(--blue2);border-radius:12px;margin-bottom:1.25rem}
.vote-modal-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--blue2),var(--blue3));color:#fff;font-size:1.15rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.vote-modal-name{font-weight:700;font-size:1rem;color:var(--blue)}
.vote-modal-meta{font-size:.83rem;color:var(--text2);margin-top:2px}

/* ---------- candidato votável ---------- */
.cand-pick{display:flex;align-items:center;gap:13px;padding:.9rem 1rem;background:#fff;border:2px solid var(--line);border-radius:11px;margin-bottom:9px;width:100%;text-align:left;transition:.15s}
.cand-pick:hover{border-color:var(--blue2);background:var(--blue-soft);transform:translateY(-2px)}
.cand-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--blue2),var(--blue3));color:#fff;font-size:.95rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cand-name{font-weight:700;font-size:.92rem;color:var(--blue)}
.cand-meta{font-size:11.5px;color:var(--text3);margin-top:1px}
.cand-arrow{margin-left:auto;color:var(--text3);font-size:1.3rem}

/* ---------- toast ---------- */
#toast{position:fixed;bottom:22px;right:22px;z-index:9999;padding:13px 20px;border-radius:11px;font-size:.88rem;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.18);display:none;max-width:320px;color:#fff}

/* ---------- impressão ---------- */
@media print{
  .nav,#attn-banner,.dash-tabs,.dash-actions,.wiz-actions,.pill-tabs,#toast,.modal-overlay{display:none!important}
  body{background:#fff}
  .chart-card,.card,.kpi-card{box-shadow:none;break-inside:avoid}
  .page{display:block!important}
}

/* ---------- responsivo ---------- */
@media(max-width:900px){
  .chart-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
  .nav-sub{display:none}
  .nav-link .nl-text{display:none}
  .nav-link{padding:8px 11px}
  .nav-user-role{display:none}
  .channels-info{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .container{padding:1.5rem 1rem}
  .wizard-shell{padding:1.5rem 1rem}
  .wiz-label{display:none}
  .wiz-step{max-width:60px}
}
@media(max-width:560px){
  .scale-btn{min-width:60px;font-size:11px;padding:8px 3px}
  .entry-btn{min-width:100%;padding:1rem 1.2rem}
  .crit-grid{grid-template-columns:1fr}
  .nav-user-name{display:none}
  .nav-user{padding:5px 8px}
  .occ-card{flex-direction:column}
  .occ-actions{flex-direction:row;padding:0 1.1rem 1rem;justify-content:flex-start}
  .modal{padding:1.35rem}
  .dash-header,.page-header{padding:1rem}
  .form-input.compact,.form-select.compact{width:100%;min-width:0}
  .flex-gap{width:100%}
  .qr-grid{grid-template-columns:1fr}
}

/* ============================================================
   EDITOR DE CARTAZ PERSONALIZADO
   ============================================================ */
.flyer-wrap{display:grid;grid-template-columns:1fr 300px;gap:1.25rem;align-items:start}
@media(max-width:820px){.flyer-wrap{grid-template-columns:1fr}}

.flyer-stage{
  position:relative;background:var(--bg2);border:1.5px solid var(--line);
  border-radius:12px;overflow:hidden;line-height:0;
  box-shadow:var(--sh);user-select:none;touch-action:none;
}
.flyer-stage img{width:100%;height:auto;display:block;pointer-events:none}
.flyer-qr{
  position:absolute;cursor:grab;line-height:0;
  border-radius:6px;transition:box-shadow .15s;
  outline:2px dashed rgba(15,91,191,.5);outline-offset:3px;
}
.flyer-qr:hover{box-shadow:0 0 0 4px rgba(15,91,191,.18)}
.flyer-qr.dragging{cursor:grabbing;outline-color:var(--blue2);box-shadow:0 0 0 5px rgba(15,91,191,.28)}
.flyer-qr svg{width:100%;height:100%;display:block;border-radius:4px}
.flyer-qr.boxed{background:#fff;padding:4%;box-shadow:0 2px 10px rgba(0,0,0,.25)}

.flyer-controls{
  background:#fff;border:1.5px solid var(--line);border-radius:12px;
  padding:1.15rem;box-shadow:var(--sh);
}
.flyer-controls input[type=range]{
  width:100%;accent-color:var(--blue2);margin-top:4px;
}
.flyer-badge{
  display:inline-flex;align-items:center;gap:6px;padding:4px 11px;
  border-radius:20px;font-size:11.5px;font-weight:700;
  background:var(--green-bg);color:var(--green);margin-bottom:.75rem;
}
