/* ============================================
VARIÁVEIS E RESET
============================================ */
:root{--bg:#f5f5f7;--bg2:#fff;--bg3:#e8e8ed;--tx:#1c1c1e;--tx2:#4a4a4f;--tx3:#6b6b72;--ac:#386484;--ac2:#386484;--acL:rgba(52,199,89,.12);--sh:0 2px 16px rgba(0,0,0,.08);--sh2:0 8px 32px rgba(0,0,0,.15);--r:16px;--rs:12px;--rx:8px;--tr:.3s ease;--bd:rgba(0,0,0,.1);--pu:#346476;--pu2:#7c3aed;--puL:rgba(139,92,246,.12);--verse-font-size:1rem}
[data-theme=dark]{--bg:#000;--bg2:#1c1c1e;--bg3:#2c2c2e;--tx:#fff;--tx2:#a1a1a6;--tx3:#8e8e93;--ac:#6366f1;--ac2:#28bd4c;--acL:rgba(48,209,88,.15);--sh:0 2px 16px rgba(0,0,0,.35);--sh2:0 8px 32px rgba(0,0,0,.5);--bd:rgba(255,255,255,.15);--puL:rgba(139,92,246,.2)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:'Poppins',sans-serif;background:var(--bg);color:var(--tx);line-height:1.6;transition:background var(--tr),color var(--tr);min-height:100vh}

/* ============================================
SIDEBAR
============================================ */
.sidebar { position: fixed; left: -280px; top: 0; width: 280px; height: 100vh; background: var(--bg2); border-right: 1px solid var(--bd); z-index: 200; transition: left 0.3s ease; padding: 1.2rem; overflow-y: auto; box-shadow: var(--sh2); display: flex; flex-direction: column; }
.sidebar.open { left: 0; }
.sidebar-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 190; display: none; backdrop-filter: blur(2px); }
.sidebar-overlay.open { display: block; }
.sidebar-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--bd); }
.sidebar-title { font-weight: 700; font-size: 1.1rem; color: var(--ac); display: flex; align-items: center; gap: 0.5rem; }
.sidebar-menu { display: flex; flex-direction: column; gap: 0.8rem; }
.sidebar-item { display: flex; flex-direction: column; background: var(--bg); border-radius: var(--rs); overflow: hidden; border: 1px solid var(--bd); }
.sidebar-btn { padding: 0.9rem 1rem; cursor: pointer; display: flex; align-items: center; gap: 0.6rem; font-weight: 600; color: var(--tx); transition: var(--tr); background: none; border: none; width: 100%; text-align: left; font-size: 0.95rem; }
.sidebar-btn:hover { background: var(--acL); color: var(--ac); }
.sidebar-btn i.fa-chevron-down, .sidebar-sub-btn i.fa-chevron-right { margin-left: auto; font-size: 0.7rem; transition: transform 0.3s ease; }
.sidebar-btn.active i.fa-chevron-down, .sidebar-sub-btn.active i.fa-chevron-right { transform: rotate(180deg); }
.sidebar-sub-btn.active i.fa-chevron-right { transform: rotate(90deg); }
.sidebar-sub { display: none; flex-direction: column; padding: 0 0.5rem 0.5rem 0.5rem; gap: 0.3rem; border-top: 1px solid var(--bd); margin-top: 0.3rem; padding-top: 0.5rem; }
.sidebar-sub.open { display: flex; }
.sidebar-sub-level2 { padding-left: 1rem !important; }
.sidebar-sub-level2 .sidebar-sub-btn { font-size: 0.82rem; padding: 0.55rem 0.8rem; }
.sidebar-sub-btn { padding: 0.6rem 1rem; border-radius: var(--rx); cursor: pointer; font-size: 0.85rem; color: var(--tx2); transition: var(--tr); display: flex; align-items: center; gap: 0.5rem; border: none; background: transparent; width: 100%; text-align: left; }
.sidebar-sub-btn:hover, .sidebar-sub-btn.active { background: var(--ac); color: #fff; }

/* ============================================
SPLASH
============================================ */
.splash{position:fixed;inset:0;background:var(--bg);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .6s,visibility .6s}
.splash.hide{opacity:0;visibility:hidden;pointer-events:none}
.splash h1{font-size:2rem;color:var(--ac);margin-bottom:2rem;animation:fl 3s ease-in-out infinite}
.splash h1 span{font-size:2.5rem;margin-left:.5rem}
.spin{width:50px;height:50px;border:4px solid var(--bg3);border-top-color:var(--ac);border-radius:50%;animation:sp 1s linear infinite}
.splash p{margin-top:1.2rem;color:var(--tx3);font-size:.9rem;animation:pl 2s infinite}
.pbar{width:160px;height:3px;background:var(--bg3);border-radius:3px;margin-top:1rem;overflow:hidden}
.pfill{height:100%;background:var(--ac);width:0;animation:ld 2s ease forwards;border-radius:3px}

/* ============================================
SCREENS E HEADER
============================================ */
.screen{display:none;padding:.8rem;max-width:1100px;margin:0 auto;animation:fu .4s ease}
.screen.active{display:block}
header{position:sticky;top:0;z-index:100;background:var(--bg);padding:.8rem 0;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
h1.app{font-size:1.4rem;font-weight:700;display:flex;align-items:center;gap:.4rem}
.acts{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap}
.btn{background:var(--bg2);border:1px solid var(--bd);padding:.5rem .8rem;border-radius:50px;display:flex;align-items:center;gap:.3rem;cursor:pointer;font-size:.8rem;font-weight:500;color:var(--tx);transition:var(--tr);white-space:nowrap}
.btn:hover{background:var(--ac);color:#fff;border-color:var(--ac);transform:translateY(-2px)}
.bico{width:38px;height:38px;padding:0;border-radius:50%;justify-content:center}

/* ============================================
SEARCH
============================================ */
.sbox{position:relative;margin:.8rem 0}
.sbox input{width:100%;padding:.85rem 2.8rem .85rem 1rem;border:2px solid var(--bd);border-radius:var(--r);background:var(--bg2);color:var(--tx);font-size:.9rem;transition:var(--tr)}
.sbox input:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px var(--acL)}
.sbox i{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--tx3);pointer-events:none}

/* ============================================
VERSE OF THE DAY
============================================ */
.votd{background:linear-gradient(135deg,#386484,#346476);color:#fff;border-radius:var(--r);padding:1.3rem;margin:.8rem 0;position:relative;overflow:hidden;box-shadow:0 4px 24px rgba(52,199,89,.3)}
.votd::before{content:'"';position:absolute;top:-10px;right:20px;font-size:6rem;opacity:.15;font-family:Georgia,serif}
.vhd{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem;flex-wrap:wrap;gap:.4rem}
.vtl{font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:.4rem;opacity:.9}
.vrf{font-weight:700;font-size:.9rem;cursor:pointer;opacity:1;position:relative;z-index:1;display:inline-block;margin-bottom:.5rem;padding:.3rem .7rem;background:rgba(255,255,255,.18);border-radius:50px;backdrop-filter:blur(4px);transition:var(--tr)}
.vrf:hover{background:rgba(255,255,255,.3);transform:translateY(-1px)}
.vtx{font-style:italic;font-size:1.05rem;line-height:1.7;margin-bottom:.8rem;position:relative;z-index:1}
.vacts{display:flex;gap:.5rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.2);flex-wrap:wrap;justify-content:flex-start;position:relative;z-index:1}
.vbtn{background:rgba(255,255,255,.18);border:none;min-width:38px;height:38px;padding:0 .7rem;border-radius:50px;color:#fff;cursor:pointer;transition:var(--tr);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:.78rem;font-weight:500;white-space:nowrap}
.vbtn:hover{background:rgba(255,255,255,.35);transform:translateY(-2px)}
.vbtn.active{background:rgba(255,55,95,.85)}
.vbtn.active:hover{background:rgba(255,55,95,1)}
.vbtn i{font-size:.85rem}

/* ============================================
CARDS
============================================ */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem;margin:1.2rem 0}
.card{background:var(--bg2);border-radius:var(--r);padding:1.1rem;box-shadow:var(--sh);transition:var(--tr);border:2px solid transparent;position:relative}
.card:hover{box-shadow:var(--sh2);transform:translateY(-2px);border-color:var(--ac)}
.cref{font-weight:600;color:var(--ac);margin-bottom:.5rem;display:inline-block;cursor:pointer;font-size:.85rem}
.cref:hover{text-decoration:underline}
.ctx{margin-bottom:.8rem;line-height:1.6;font-size:.9rem;color:var(--tx2)}
.cacts{display:flex;gap:.4rem;padding-top:.5rem;border-top:1px solid var(--bd)}
.cb{background:none;border:none;color:var(--tx3);cursor:pointer;padding:.3rem;border-radius:var(--rx);transition:var(--tr)}
.cb:hover{background:var(--acL);color:var(--ac)}
.cb.active{color:#ff375f}

/* ============================================
CHAPTER VERSES
============================================ */
.chd{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem;padding:.8rem 0;border-bottom:1px solid var(--bd);margin-bottom:.8rem;position:sticky;top:0;background:var(--bg);z-index:50}
.chc{background:var(--bg2);border-radius:var(--r);padding:1.3rem;box-shadow:var(--sh)}
.vi{padding:.7rem .9rem;border-radius:var(--rx);cursor:pointer;transition:background .2s ease;display:flex;gap:.7rem;margin-bottom:.3rem;border:2px solid transparent;position:relative;align-items:flex-start}
.vi:hover{background:var(--acL)}
.vi.hl-y{background:rgba(255,214,10,.35)!important}
.vi.hl-b{background:rgba(0,122,255,.3)!important}
.vi.hl-p{background:rgba(255,45,85,.3)!important}
.vi.hl-g{background:rgba(52,199,89,.3)!important}
[data-theme=dark] .vi.hl-y{background:rgba(255,214,10,.2)!important}
[data-theme=dark] .vi.hl-b{background:rgba(0,122,255,.18)!important}
[data-theme=dark] .vi.hl-p{background:rgba(255,45,85,.18)!important}
[data-theme=dark] .vi.hl-g{background:rgba(52,199,89,.18)!important}
.vn{font-weight:600;color:var(--ac);min-width:22px;flex-shrink:0;font-size:calc(var(--verse-font-size) * 0.85);margin-top:2px}
.vt{flex:1;line-height:1.7;font-size:var(--verse-font-size)}

/* ============================================
COLOR PICKER & AI BUTTON
============================================ */
.vcp{position:fixed;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rs);padding:.8rem;display:none;flex-direction:column;gap:.5rem;box-shadow:var(--sh2);z-index:600;animation:fu .2s ease;min-width:190px}
.vcp.show{display:flex}
.vcp-title{font-size:.8rem;font-weight:600;color:var(--tx2);text-align:center;margin-bottom:.2rem}
.vcp-row{display:flex;gap:.4rem;justify-content:center;align-items:center}
.vcp-opt{width:32px;height:32px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:var(--tr);position:relative}
.vcp-opt:hover{transform:scale(1.15)}
.vcp-opt.active{border-color:var(--tx)}
.vcp-opt.active::after{content:'\2713';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700;text-shadow:0 0 3px rgba(0,0,0,.5)}
.vcp-ai-btn{background:linear-gradient(135deg,var(--pu),var(--pu2));color:#fff;border:none;border-radius:var(--rx);padding:.65rem;cursor:pointer;font-weight:600;font-size:.8rem;display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;transition:var(--tr)}
.vcp-ai-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(139,92,246,.4)}
.vcp-remove{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rx);padding:.5rem;text-align:center;cursor:pointer;font-size:.75rem;color:var(--tx2);transition:var(--tr);margin-top:.2rem}
.vcp-remove:hover{background:#ff3b30;color:#fff;border-color:#ff3b30}

/* ============================================
MODAL HISTÓRICO IA (Z-INDEX 850)
============================================ */
.hist-modal{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(6px);z-index:850;display:none;align-items:center;justify-content:center;padding:1rem;animation:fi .2s}
.hist-modal.show{display:flex}
.hist-box{background:var(--bg2);border-radius:var(--r);width:100%;max-width:850px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:su .3s ease}
.hist-header{background:linear-gradient(135deg,var(--pu),var(--pu2));color:#fff;padding:1rem 1.3rem;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.hist-header h3{font-size:1.1rem;display:flex;align-items:center;gap:.5rem;font-weight:600;margin:0}
.hist-header-info{font-size:.78rem;opacity:.9;margin-top:.2rem}
.hist-close{background:rgba(255,255,255,.2);border:none;width:34px;height:34px;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.hist-close:hover{background:rgba(255,255,255,.4)}
.hist-tabs{display:flex;background:var(--bg);border-bottom:1px solid var(--bd);flex-shrink:0;overflow-x:auto}
.hist-tab{flex:1;min-width:120px;padding:.8rem 1rem;border:none;background:transparent;color:var(--tx2);cursor:pointer;font-weight:600;font-size:.82rem;transition:var(--tr);display:flex;align-items:center;justify-content:center;gap:.4rem;white-space:nowrap;border-bottom:3px solid transparent}
.hist-tab:hover{background:var(--acL);color:var(--ac)}
.hist-tab.active{color:var(--pu);border-bottom-color:var(--pu);background:var(--bg2)}
.hist-tab .badge{background:var(--pu);color:#fff;font-size:.7rem;padding:.1rem .45rem;border-radius:50px;font-weight:700;min-width:20px;text-align:center}
.hist-content{flex:1;overflow-y:auto;padding:1rem}
.hist-empty{text-align:center;padding:3rem 1rem;color:var(--tx3)}
.hist-empty i{font-size:3rem;margin-bottom:1rem;opacity:.4;display:block}
.hist-empty p{font-size:.9rem;margin-bottom:1rem}
.hist-list{display:flex;flex-direction:column;gap:.6rem}
.hist-item{background:var(--bg);border:1px solid var(--bd);border-radius:var(--rs);padding:.9rem;cursor:pointer;transition:var(--tr);position:relative}
.hist-item:hover{border-color:var(--pu);box-shadow:var(--sh);transform:translateY(-1px)}
.hist-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.4rem}
.hist-item-q{font-weight:600;color:var(--tx);font-size:.88rem;flex:1;line-height:1.4}
.hist-item-date{font-size:.7rem;color:var(--tx3);white-space:nowrap;display:flex;align-items:center;gap:.3rem}
.hist-item-preview{font-size:.78rem;color:var(--tx2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hist-item-actions{display:flex;gap:.3rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--bd);flex-wrap:wrap}
.hist-item-actions button{background:var(--bg2);border:1px solid var(--bd);padding:.3rem .6rem;border-radius:var(--rx);font-size:.7rem;color:var(--tx2);cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:var(--tr)}
.hist-item-actions button:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
.hist-item-actions button.del:hover{background:#ff3b30;border-color:#ff3b30}
.hist-item-type{position:absolute;top:.6rem;right:.6rem;font-size:.65rem;padding:.15rem .45rem;border-radius:50px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.hist-item-type.pesquisa{background:var(--acL);color:var(--ac)}
.hist-item-type.devocional{background:var(--puL);color:var(--pu)}
.hist-item-type.sermão{background:rgba(255,149,0,.15);color:#ff9500}
.hist-footer{padding:.8rem 1rem;border-top:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center;background:var(--bg);flex-shrink:0;gap:.5rem;flex-wrap:wrap}
.hist-footer-info{font-size:.75rem;color:var(--tx3)}
.hist-footer-btn{background:var(--bg2);border:1px solid var(--bd);padding:.4rem .8rem;border-radius:50px;font-size:.75rem;color:var(--tx2);cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:var(--tr)}
.hist-footer-btn:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
.hist-new-btn{background:linear-gradient(135deg,var(--pu),var(--pu2));color:#fff;border:none;padding:.55rem 1.1rem;border-radius:50px;font-size:.82rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:var(--tr);box-shadow:0 4px 12px rgba(139,92,246,.3)}
.hist-new-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(139,92,246,.5)}
.hist-loading{text-align:center;padding:2rem;color:var(--tx3)}
.hist-loading .lds{width:32px;height:32px;border:3px solid var(--bg3);border-top-color:var(--pu);border-radius:50%;animation:sp 1s linear infinite;margin:0 auto .8rem}

/* ============================================
MODAL PLANO DE LEITURA
============================================ */
.plan-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);z-index:750;display:none;align-items:center;justify-content:center;padding:1rem;animation:fi .2s}
.plan-modal.show{display:flex}
.plan-box{background:var(--bg2);border-radius:var(--r);width:100%;max-width:720px;max-height:92vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:su .3s ease}
.plan-header{background:linear-gradient(135deg,var(--ac),var(--pu));color:#fff;padding:1.2rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.plan-header h3{font-size:1.1rem;display:flex;align-items:center;gap:.5rem;font-weight:600;margin:0}
.plan-header-info{font-size:.78rem;opacity:.9;margin-top:.2rem}
.plan-close{background:rgba(255,255,255,.2);border:none;width:34px;height:34px;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.plan-close:hover{background:rgba(255,255,255,.4)}
.plan-progress-bar{height:6px;background:rgba(255,255,255,.2);border-radius:3px;margin-top:.8rem;overflow:hidden}
.plan-progress-fill{height:100%;background:#fff;border-radius:3px;transition:width .5s ease;width:0}
.plan-stats{display:flex;gap:.8rem;padding:1rem 1.5rem;background:var(--bg);border-bottom:1px solid var(--bd);flex-shrink:0;flex-wrap:wrap}
.plan-stat{flex:1;min-width:100px;text-align:center;padding:.5rem;background:var(--bg2);border-radius:var(--rx);border:1px solid var(--bd)}
.plan-stat-num{font-size:1.3rem;font-weight:700;color:var(--ac);display:block}
.plan-stat-label{font-size:.7rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.5px}
.plan-content{flex:1;overflow-y:auto;padding:1rem 1.5rem}
.plan-day{background:var(--bg);border:1px solid var(--bd);border-radius:var(--rs);padding:.8rem 1rem;margin-bottom:.5rem;display:flex;align-items:flex-start;gap:.8rem;transition:var(--tr);cursor:pointer}
.plan-day:hover{border-color:var(--ac);transform:translateX(4px)}
.plan-day.today{border-color:var(--ac);background:var(--acL);box-shadow:0 0 0 2px var(--acL)}
.plan-day.done{opacity:.65}
.plan-day.done .plan-day-refs{text-decoration:line-through;color:var(--tx3)}
.plan-day-check{width:26px;height:26px;border-radius:50%;border:2px solid var(--bd);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--tr);background:var(--bg2)}
.plan-day.done .plan-day-check{background:var(--ac);border-color:var(--ac);color:#fff}
.plan-day-num{font-weight:700;color:var(--ac);min-width:55px;font-size:.85rem;padding-top:.15rem}
.plan-day-refs{flex:1;font-size:.85rem;color:var(--tx);line-height:1.5;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.plan-day-refs span{display:inline-flex;align-items:center;background:var(--bg2);padding:.25rem .6rem;border-radius:50px;border:1px solid var(--bd);font-size:.75rem;font-weight:500;cursor:pointer;transition:var(--tr);margin:0;white-space:nowrap}
.plan-day-refs span:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
.plan-footer{padding:.8rem 1.5rem;border-top:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center;background:var(--bg);flex-shrink:0;gap:.5rem;flex-wrap:wrap}
.plan-footer-info{font-size:.75rem;color:var(--tx3)}
.plan-btn{background:linear-gradient(135deg,var(--ac),var(--pu));color:#fff;border:none;padding:.55rem 1rem;border-radius:50px;font-size:.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:var(--tr)}
.plan-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(56,100,132,.4)}
.plan-btn.secondary{background:var(--bg2);color:var(--tx);border:1px solid var(--bd)}
.plan-btn.secondary:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
.plan-choices{padding:1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.plan-choice{background:var(--bg);border:2px solid var(--bd);border-radius:var(--rs);padding:1.2rem;cursor:pointer;transition:var(--tr);text-align:center}
.plan-choice:hover{border-color:var(--ac);transform:translateY(-3px);box-shadow:var(--sh)}
.plan-choice i{font-size:2rem;color:var(--ac);margin-bottom:.6rem;display:block}
.plan-choice h4{font-size:.95rem;margin-bottom:.3rem;color:var(--tx)}
.plan-choice p{font-size:.75rem;color:var(--tx3);line-height:1.4}

/* ============================================
MODAIS ORIGINAIS
============================================ */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);z-index:500;display:none;align-items:center;justify-content:center;padding:1rem;animation:fi .2s}
.modal.show{display:flex}
.mbox{background:var(--bg2);border-radius:var(--r);width:100%;max-width:700px;max-height:85vh;overflow-y:auto;padding:1.3rem;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:su .3s ease}
.mcl{position:absolute;top:.8rem;right:.8rem;background:var(--bg3);border:none;width:30px;height:30px;border-radius:50%;cursor:pointer;color:var(--tx);display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.mcl:hover{background:#ff3b30;color:#fff}
.mtl{font-size:1.2rem;margin-bottom:.8rem;text-align:center;font-weight:600}
.tabs{display:flex;gap:.4rem;margin-bottom:.8rem;flex-wrap:wrap}
.tab{flex:1;min-width:90px;padding:.5rem;border:none;border-radius:50px;background:var(--bg3);color:var(--tx);cursor:pointer;font-weight:500;font-size:.8rem;transition:var(--tr)}
.tab.active,.tab:hover{background:var(--ac);color:#fff}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.4rem;max-height:280px;overflow-y:auto;padding:.2rem}
.bit{padding:.5rem;border:1px solid var(--bd);border-radius:var(--rx);background:var(--bg);color:var(--tx);cursor:pointer;text-align:center;font-size:.75rem;transition:var(--tr)}
.bit:hover,.bit.active{background:var(--ac);color:#fff;border-color:var(--ac)}
.ba{font-size:.65rem;opacity:.8;display:block;margin-top:.1rem}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:.3rem;margin-top:.8rem}
.ci{padding:.45rem;border:1px solid var(--bd);border-radius:var(--rx);background:var(--bg);color:var(--tx);cursor:pointer;text-align:center;font-size:.8rem;font-weight:500;transition:var(--tr)}
.ci:hover,.ci.active{background:var(--ac);color:#fff;border-color:var(--ac)}
.ddrop{position:absolute;top:100%;right:0;margin-top:.4rem;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rs);box-shadow:var(--sh);min-width:180px;z-index:100;display:none;flex-direction:column;overflow:hidden;max-height:220px;overflow-y:auto}
.ddrop.show{display:flex;animation:fu .2s ease}
.dit{padding:.6rem .8rem;cursor:pointer;transition:var(--tr);border-bottom:1px solid var(--bd)}
.dit:hover,.dit.active{background:var(--acL);color:var(--ac);font-weight:500}
.dit:last-child{border-bottom:none}
.dn{font-weight:500;font-size:.85rem}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:.8rem}
.so{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.8rem;border-radius:var(--rs);background:var(--bg);border:1px solid var(--bd);cursor:pointer;transition:var(--tr)}
.so:hover{background:var(--acL);border-color:var(--ac);transform:translateY(-2px)}
.so i{font-size:1.3rem}

/* ============================================
TOAST
============================================ */
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(120px);background:var(--bg2);color:var(--tx);padding:.7rem 1.3rem;border-radius:50px;box-shadow:0 8px 32px rgba(0,0,0,.25);z-index:2000;display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.85rem;border:1px solid var(--bd);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast i{font-size:1rem}
.toast.s i{color:#386484}
.toast.w i{color:#ff9500}
.toast.e i{color:#ff3b30}

/* ============================================
FAB
============================================ */
.fab{position:fixed;bottom:1.5rem;right:1.2rem;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--pu),var(--pu2));color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:1.3rem;cursor:pointer;box-shadow:0 6px 24px rgba(139,92,246,.4);z-index:200;transition:var(--tr);animation:fp 3s infinite}
.fab:hover{transform:scale(1.1);box-shadow:0 8px 32px rgba(139,92,246,.6)}
.fab:active{transform:scale(.95)}

/* ============================================
ASSISTENTE IA (Z-INDEX 800)
============================================ */
#gs{display:none;position:fixed;inset:0;background:var(--bg);z-index:800;flex-direction:column;animation:oi .3s ease}
#gs.active{display:flex}
.gh{background:linear-gradient(135deg,var(--pu),var(--pu2));color:#fff;padding:1rem;display:flex;align-items:center;gap:.8rem}
.gb{background:rgba(255,255,255,.2);border:none;width:36px;height:36px;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr);font-size:1rem;flex-shrink:0}
.gb:hover{background:rgba(255,255,255,.4)}
.gh h2{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.4rem;flex:1}
.gh-history-btn{background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.3);padding:.45rem .9rem;border-radius:50px;color:#fff;cursor:pointer;display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;transition:var(--tr);backdrop-filter:blur(4px)}
.gh-history-btn:hover{background:rgba(255,255,255,.4);transform:translateY(-1px)}
.gc{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.8rem}
.cm{max-width:85%;padding:.8rem 1rem;border-radius:var(--rs);font-size:.88rem;line-height:1.6;animation:fu .3s ease;white-space:pre-wrap}
.cm.u{align-self:flex-end;background:linear-gradient(135deg,var(--pu),var(--pu2));color:#fff;border-bottom-right-radius:4px}
.cm.a{align-self:flex-start;background:var(--bg3);color:var(--tx);border-bottom-left-radius:4px}
.cm.s{align-self:center;background:var(--puL);color:var(--pu);font-size:.8rem;text-align:center;max-width:100%}
.cm strong{font-weight:600}
.cm-a{display:flex;gap:.3rem;margin-top:.5rem;justify-content:flex-end}
.cm-a button{background:rgba(0,0,0,.08);border:none;padding:.3rem .6rem;border-radius:var(--rx);font-size:.7rem;color:var(--tx2);cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:var(--tr)}
.cm-a button:hover{background:rgba(0,0,0,.15);color:var(--tx)}
.ty{align-self:flex-start;padding:.8rem 1rem;background:var(--bg3);border-radius:var(--rs);display:none;gap:5px;align-items:center}
.ty.show{display:flex}
.ty span{width:8px;height:8px;border-radius:50%;background:var(--tx3);animation:bo .6s infinite alternate}
.ty span:nth-child(2){animation-delay:.2s}
.ty span:nth-child(3){animation-delay:.4s}
.gi-bar{padding:.8rem 1rem;border-top:1px solid var(--bd);display:flex;gap:.5rem;background:var(--bg2)}
.gi-bar input{flex:1;padding:.7rem 1rem;border:2px solid var(--bd);border-radius:var(--rx);background:var(--bg);color:var(--tx);font-size:.9rem;transition:var(--tr)}
.gi-bar input:focus{outline:none;border-color:var(--pu)}
.gi-send{background:linear-gradient(135deg,var(--pu),var(--pu2));color:#fff;border:none;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr);font-size:1rem;flex-shrink:0}
.gi-send:hover{transform:scale(1.05)}
.gi-send:disabled{opacity:.5;cursor:not-allowed}
.gq{padding:.5rem 1rem 0;display:flex;flex-wrap:wrap;gap:.4rem}
.gq button{background:var(--bg3);border:1px solid var(--bd);padding:.35rem .7rem;border-radius:50px;font-size:.72rem;color:var(--tx2);cursor:pointer;transition:var(--tr)}
.gq button:hover{background:var(--puL);color:var(--pu);border-color:var(--pu)}
.gcnt{padding:.3rem 1rem;font-size:.7rem;color:var(--tx3);text-align:center}
.load{text-align:center;padding:2rem;color:var(--tx3)}
.lds{width:28px;height:28px;border:3px solid var(--bg3);border-top-color:var(--ac);border-radius:50%;animation:sp 1s linear infinite;margin:0 auto .8rem}
#cv{display:none}

/* ============================================
ANIMAÇÕES
============================================ */
@keyframes fi{from{opacity:0}to{opacity:1}}
@keyframes fu{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes su{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes oi{from{opacity:0}to{opacity:1}}
@keyframes sp{to{transform:rotate(360deg)}}
@keyframes fl{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes pl{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes fp{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes ld{from{width:0}to{width:100%}}
@keyframes bo{to{transform:translateY(-6px)}}

/* ============================================
RESPONSIVIDADE
============================================ */
@media(min-width: 769px) {
    .sidebar { left: 0; width: 260px; }
    .sidebar-overlay { display: none !important; }
    .screen { margin-left: 260px; max-width: calc(1100px); }
    header { padding-left: 1rem; }
    .menu-toggle-btn { display: none; }
}
@media(max-width:768px){
    .grid{grid-template-columns:1fr}
    header{flex-direction:column;align-items:flex-start}
    .votd{padding:1.1rem}
    .sgrid{grid-template-columns:repeat(2,1fr)}
    .mbox{padding:1rem;margin:.5rem}
    .bgrid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}
    .cm{max-width:92%}
    .hist-box{max-height:95vh}
    .hist-tab{min-width:90px;font-size:.75rem;padding:.7rem .5rem}
    .plan-choices{grid-template-columns:1fr 1fr;padding:1rem}
    .plan-choice{padding:.9rem .6rem}
    .plan-day{padding:.7rem}
    .plan-day-num{min-width:45px;font-size:.78rem}
    .plan-day-refs span{font-size:.7rem}
    .vacts{gap:.4rem}
    .vbtn{min-width:36px;height:36px;padding:0 .6rem;font-size:.72rem}
}
@media(max-width:480px){
    .screen{padding:.6rem}
    h1.app{font-size:1.2rem}
    .btn{padding:.4rem .6rem;font-size:.75rem}
    .chc{padding:.8rem}
    .plan-choices{grid-template-columns:1fr}
    .vacts{gap:.3rem;justify-content:space-between}
    .vbtn{flex:1;min-width:0;height:38px;padding:0 .4rem;font-size:.7rem}
    .vbtn span{display:none}
}

/* ============================================
MODAL DE SINCRONIZAÇÃO
============================================ */
.sync-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);z-index:900;display:none;align-items:center;justify-content:center;padding:1rem;animation:fi .2s}
.sync-modal.show{display:flex}
.sync-box{background:var(--bg2);border-radius:var(--r);width:100%;max-width:420px;padding:1.8rem;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:su .3s ease;text-align:center}
.sync-box h3{font-size:1.2rem;margin-bottom:.5rem;color:var(--tx);display:flex;align-items:center;justify-content:center;gap:.5rem}
.sync-box p{font-size:.85rem;color:var(--tx2);margin-bottom:1rem;line-height:1.5}
.sync-code-display{background:linear-gradient(135deg,var(--ac),var(--pu));color:#fff;font-size:2rem;font-weight:800;letter-spacing:.4rem;padding:1.2rem;border-radius:var(--rs);margin:1rem 0;font-family:'Courier New',monospace;box-shadow:0 4px 16px rgba(56,100,132,.3);user-select:all}
.sync-input{width:100%;padding:.9rem 1rem;border:2px solid var(--bd);border-radius:var(--rs);background:var(--bg);color:var(--tx);font-size:1.3rem;font-weight:700;text-align:center;letter-spacing:.3rem;font-family:'Courier New',monospace;text-transform:uppercase;margin:1rem 0}
.sync-input:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px var(--acL)}
.sync-actions{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap;justify-content:center}
.sync-btn{padding:.7rem 1.2rem;border-radius:50px;border:none;font-weight:600;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:var(--tr)}
.sync-btn.primary{background:linear-gradient(135deg,var(--ac),var(--pu));color:#fff}
.sync-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(56,100,132,.4)}
.sync-btn.secondary{background:var(--bg);color:var(--tx);border:1px solid var(--bd)}
.sync-btn.secondary:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
.sync-info{font-size:.75rem;color:var(--tx3);margin-top:1rem;padding:.8rem;background:var(--bg);border-radius:var(--rx);text-align:left;line-height:1.5}
.sync-info i{color:var(--ac);margin-right:.3rem}
.sync-badge{display:inline-block;background:var(--acL);color:var(--ac);padding:.2rem .6rem;border-radius:50px;font-size:.7rem;font-weight:600;margin-left:.4rem;cursor:pointer}
.sync-badge:hover{background:var(--ac);color:#fff}