/* Patrimo Invest 7.0 — Gavetas e fluxos ainda gerados pelo JavaScript legado:
   gaveta de notificações (notif-*), guia rápido (tutorial-*-v420) e “+ Investimento” (v521-*).
   Comportamento, textos e dados não mudaram; só a apresentação. Somente tokens, sem !important. */

/* ---------- Primitivas legadas dentro destas gavetas ---------- */
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal){font-family:var(--font-sans);font-size:14px;line-height:22px;color:var(--text-primary);-webkit-font-smoothing:antialiased}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) *{box-sizing:border-box}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) :is(h2,h3,p){margin:0}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .btn:hover{background:var(--surface-3);color:var(--text-primary)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .btn-primary{background:var(--action);color:var(--on-brand);border-color:var(--brand-ui)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .btn-primary:hover{background:var(--action-hover);color:var(--on-brand)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .btn-outline{background:var(--surface-1);color:var(--text-primary);border-color:var(--border-strong)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .btn-outline:hover{background:var(--surface-2)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .btn:disabled{opacity:.55;cursor:not-allowed}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) :is(.input,input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea){width:100%;min-height:var(--target-min);padding:0 var(--space-3);background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);font:inherit;box-shadow:none}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) textarea{padding:var(--space-3);min-height:96px;resize:vertical}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) input[type="checkbox"],:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) input[type="radio"]{width:18px;height:18px;min-height:0;accent-color:var(--action)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .field{display:flex;flex-direction:column;gap:6px;min-width:0}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .field>label,:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) label.lbl{font-size:13px;line-height:18px;font-weight:600;color:var(--text-primary)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .tab-segments{display:flex;gap:2px;padding:2px;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .tab-segments button{flex:1 0 auto;min-height:36px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
:is(.notif-drawer,.tutorial-panel-v420,.v521-add-modal) .tab-segments button.on{background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-1)}
.notif-drawer .switch,.v521-add-modal .switch{position:relative;width:40px;height:24px;border-radius:var(--radius-pill);background:var(--surface-3);border:1px solid var(--border-strong);cursor:pointer}
.notif-drawer .switch i,.v521-add-modal .switch i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:var(--radius-pill);background:var(--surface-1);box-shadow:var(--shadow-1);transition:transform var(--duration-fast) var(--ease-standard)}
.notif-drawer .switch.on,.v521-add-modal .switch.on{background:var(--action);border-color:var(--brand-ui)}
.notif-drawer .switch.on i,.v521-add-modal .switch.on i{transform:translateX(16px)}

/* ---------- Gaveta de notificações ---------- */
.notif-backdrop{position:fixed;inset:0;z-index:8800;background:var(--overlay-scrim)}
.notif-drawer{position:fixed;top:var(--topbar-h);right:var(--space-3);bottom:var(--space-3);z-index:8900;display:flex;flex-direction:column;width:min(440px,calc(100vw - var(--space-6)));overflow:hidden;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal)}
.notif-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}
.notif-eyebrow{margin-bottom:2px;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-text)}
.notif-heading{font-size:18px;line-height:24px;font-weight:700}
.notif-heading span{margin-left:var(--space-2);font-size:12px;font-weight:600;color:var(--text-muted)}
.notif-source{margin:var(--space-3) var(--space-3) var(--space-1);padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;line-height:20px}
.notif-list{flex:1;min-height:0;padding:var(--space-2) var(--space-3);overflow-y:auto}
.notif-item{display:flex;gap:var(--space-3);width:100%;margin-bottom:var(--space-1);padding:var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;text-align:left;cursor:pointer}
.notif-item:hover{background:var(--surface-2);border-color:var(--border-subtle)}
.notif-item.read{opacity:.7}
.notif-pulse{flex:none;width:8px;height:8px;margin-top:8px;border-radius:var(--radius-pill);background:var(--info)}
.notif-pulse.critical{background:var(--negative)}
.notif-pulse.important{background:var(--brand-ui)}
.notif-body{flex:1;min-width:0}
.notif-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1);font-size:14px;line-height:20px;font-weight:600;color:var(--text-primary)}
.notif-text{font-size:13px;line-height:20px;color:var(--text-secondary)}
.notif-meta{margin-top:var(--space-2);font-size:12px;line-height:16px;color:var(--text-muted)}
.notif-priority{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--info-bg);color:var(--info);font-size:12px;line-height:20px;font-weight:600;white-space:nowrap}
.notif-priority.important{background:var(--warning-bg);color:var(--brand-text)}
.notif-priority.critical{background:var(--negative-bg);color:var(--negative)}
.notif-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-12) var(--space-5);color:var(--text-muted);text-align:center}
.notif-empty svg{width:28px;height:28px;color:var(--brand-ui)}
.notif-empty b{color:var(--text-secondary)}
.notif-drawer-actions{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border-subtle)}
.notif-drawer-actions .btn{flex:1}

/* ---------- Guia rápido ---------- */
.tutorial-backdrop-v420{position:fixed;inset:0;z-index:9000;background:var(--overlay-scrim)}
.tutorial-panel-v420{position:fixed;top:var(--space-3);right:var(--space-3);bottom:var(--space-3);z-index:9001;display:flex;flex-direction:column;width:min(520px,calc(100vw - var(--space-6)));min-height:0;overflow:hidden;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal)}
.tutorial-head-v420{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-3);border-bottom:1px solid var(--border-subtle)}
.tutorial-head-v420 h2{font-size:20px;line-height:28px}
.tutorial-head-v420 p{margin-top:var(--space-1);color:var(--text-secondary);font-size:13px;line-height:20px}
.tutorial-progress-v420{flex:none;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5)}
.tutorial-progress-v420>div:first-child{display:grid}
.tutorial-progress-v420 b{font-size:18px;line-height:24px}
.tutorial-progress-v420 span{font-size:12px;line-height:16px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}
.tutorial-progress-v420 strong{font-family:var(--font-num);color:var(--brand-text)}
.tutorial-bar-v420{height:8px;overflow:hidden;border-radius:var(--radius-pill);background:var(--surface-3)}
.tutorial-bar-v420 i{display:block;height:100%;border-radius:var(--radius-pill);background:var(--brand-ui)}
.tutorial-panel-v420 .tab-segments{margin:0 var(--space-5) var(--space-3);overflow-x:auto}
.tutorial-list-v420,.tutorial-map-v420{display:grid;flex:1 1 auto;gap:var(--space-2);align-content:start;min-height:0;padding:0 var(--space-5) var(--space-4);overflow:auto}
.tutorial-step-v420{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-primary);text-align:left;cursor:pointer}
.tutorial-step-v420:hover{background:var(--surface-2)}
.tutorial-step-v420.done{background:var(--positive-bg);border-color:var(--positive)}
.tutorial-step-v420 b{display:block;font-size:14px;line-height:20px}
.tutorial-step-v420 small{display:block;margin-top:2px;color:var(--text-muted);font-size:12px;line-height:18px;overflow-wrap:anywhere}
.tutorial-step-v420 em{font-style:normal;font-size:12px;font-weight:700;color:var(--brand-text);text-transform:uppercase}
.tutorial-step-v420.done em{color:var(--positive)}
.tutorial-step-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--brand-text)}
.tutorial-map-v420 div{padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}
.tutorial-map-v420 b{display:block;font-size:14px;line-height:20px}
.tutorial-map-v420 span{display:block;margin-top:2px;color:var(--text-muted);font-size:12px;line-height:18px}
.tutorial-foot-v420{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:auto;padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-subtle);background:var(--surface-1)}

/* ---------- “+ Investimento” (fluxo guiado) ---------- */
.v521-add-backdrop{position:fixed;inset:0;z-index:80;background:var(--overlay-scrim)}
.v521-add-modal{position:fixed;z-index:81;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;width:min(980px,calc(100vw - var(--space-8)));max-height:min(88vh,860px);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal)}
.v521-add-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--border-subtle)}
.v521-add-head h2{margin:var(--space-1) 0;font-size:22px;line-height:30px}
.v521-add-head p{max-width:720px;color:var(--text-secondary)}
.v521-flow-home,.v521-flow-details,.v521-flow-review{padding:var(--space-5);overflow:auto}
.v521-flow-home{display:grid;gap:var(--space-4)}
.v521-flow-group{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}
.v521-flow-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}
.v521-flow-group-head b{font-size:15px}
.v521-flow-group-head span{font-size:12px;color:var(--text-muted)}
.v521-flow-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.v521-flow-card{display:grid;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-primary);text-align:left;cursor:pointer}
.v521-flow-card:hover{border-color:var(--brand-ui);background:var(--surface-1)}
.v521-flow-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.v521-flow-card-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--brand-text);font-weight:700}
.v521-flow-card b{font-size:14px;line-height:20px}
.v521-flow-card small{color:var(--text-muted);font-size:12px;line-height:18px}
.v521-flow-intent{display:grid;gap:var(--space-1);margin-bottom:var(--space-4);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2)}
.v521-flow-intent p{color:var(--text-secondary)}
.v521-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.v521-ticker-search{position:relative;display:grid;gap:6px}
.v521-ticker-results{position:absolute;left:0;right:0;top:calc(100% + var(--space-1));z-index:5;display:grid;gap:var(--space-1);padding:var(--space-2);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-popover)}
.v521-ticker-results button{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);padding:var(--space-2);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}
.v521-ticker-results button:hover{background:var(--surface-2)}
.v521-ticker-results span{color:var(--text-secondary);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v521-ticker-results em{font-style:normal;color:var(--text-muted);font-size:12px}
.v521-form-help{font-size:12px;line-height:18px;color:var(--text-muted)}
.v521-impact-box{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2)}
.v521-impact-box b{width:100%;font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.v521-impact-box span{padding:2px var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-1);color:var(--text-secondary);font-size:12px}
.v521-review-card{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2)}
.v521-review-card h3{margin:var(--space-1) 0}
.v521-review-kicker{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-text)}
.v521-review-note{margin-top:var(--space-3);font-size:12px;color:var(--text-muted)}
.v521-error{margin:0 var(--space-5) var(--space-3);padding:var(--space-3);border:1px solid var(--negative);border-radius:var(--radius-sm);background:var(--negative-bg);color:var(--negative);font-weight:600}
.v521-add-foot{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-subtle);background:var(--surface-1)}
.v521-add-foot-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}
.v521-add-modal .tx-grid-form{display:grid;gap:var(--space-3)}

/* ---------- Telas menores ---------- */
@media (max-width:980px){.v521-flow-cards,.v521-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:920px){.v521-flow-group-head{flex-direction:column;align-items:flex-start;gap:var(--space-1)}}
@media (min-width:768px) and (max-width:1023px){.tutorial-panel-v420{top:50%;right:auto;bottom:auto;left:50%;width:min(720px,calc(100vw - var(--space-8)));height:min(88dvh,760px);transform:translate(-50%,-50%)}}
@media (max-width:767px){
  .notif-drawer{inset:0;width:100%;max-width:100%;border-radius:0}
  .tutorial-panel-v420{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;height:min(90dvh,780px);max-height:90dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
  .tutorial-head-v420{padding:var(--space-4) var(--space-4) var(--space-3)}
  .tutorial-progress-v420{padding:var(--space-3) var(--space-4)}
  .tutorial-panel-v420 .tab-segments{margin-left:var(--space-4);margin-right:var(--space-4)}
  .tutorial-list-v420,.tutorial-map-v420{padding-left:var(--space-4);padding-right:var(--space-4)}
  .tutorial-foot-v420{padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px))}
  .tutorial-foot-v420 .btn{flex:1 1 150px}
  .v521-add-modal{left:0;right:0;top:auto;bottom:0;width:100%;max-width:100vw;max-height:94dvh;transform:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
  .v521-add-head{padding:var(--space-4)}
  .v521-flow-home,.v521-flow-details,.v521-flow-review{min-height:0;padding:var(--space-4)}
  .v521-flow-cards,.v521-grid{grid-template-columns:minmax(0,1fr)}
  .v521-flow-card{min-height:84px}
  .v521-add-foot{position:sticky;bottom:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px))}
  .v521-add-foot>span{display:none}
  .v521-add-foot-actions{display:grid;grid-template-columns:minmax(0,1fr)}
  .v521-add-foot .btn{width:100%;min-height:46px}
}
@media (max-width:420px){.tutorial-step-v420{grid-template-columns:minmax(0,1fr) auto}.tutorial-step-ic{display:none}}
@media (prefers-reduced-motion:reduce){.notif-drawer .switch i{transition:none}}
@media print{.notif-backdrop,.notif-drawer,.tutorial-backdrop-v420,.tutorial-panel-v420,.v521-add-backdrop,.v521-add-modal{display:none}}
