﻿:root{
  --bg:#0f1117;--bg2:#161b27;--bg3:#1e2535;--bg4:#252d40;
  --border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.13);
  --text:#e8eaf0;--text2:#8892a4;--text3:#4d5669;
  --accent:#4f8ef7;--accent-bg:rgba(79,142,247,0.12);--accent-border:rgba(79,142,247,0.3);
  --green:#3ecf8e;--green-bg:rgba(62,207,142,0.10);--green-border:rgba(62,207,142,0.25);
  --amber:#f5a623;--amber-bg:rgba(245,166,35,0.12);--amber-border:rgba(245,166,35,0.32);
  --purple:#9567ff;--purple-bg:rgba(149,103,255,0.11);--purple-border:rgba(149,103,255,0.28);
  --red:#f25f5c;--red-bg:rgba(242,95,92,0.10);
  --radius:10px;--radius-lg:14px;--radius-xl:20px;
  --font:'DM Sans',sans-serif;--mono:'DM Mono',monospace;
  --tr:.15s ease;
}
body.light{
  --bg:#f0f2f7;--bg2:#ffffff;--bg3:#f5f6fa;--bg4:#e8eaf0;
  --border:rgba(0,0,0,0.07);--border2:rgba(0,0,0,0.12);
  --text:#1a1f2e;--text2:#5a6478;--text3:#9aa0b0;
  --accent:#3b7ef0;--accent-bg:rgba(59,126,240,0.10);--accent-border:rgba(59,126,240,0.28);
  --green:#1fa872;--green-bg:rgba(31,168,114,0.09);--green-border:rgba(31,168,114,0.22);
  --amber:#d4880a;--amber-bg:rgba(212,136,10,0.10);--amber-border:rgba(212,136,10,0.28);
  --purple:#7a4fd6;--purple-bg:rgba(122,79,214,0.09);--purple-border:rgba(122,79,214,0.24);
  --red:#d94744;--red-bg:rgba(217,71,68,0.08);
}
body.light .pin-screen{background:var(--bg)}
body.light .cell-input,body.light .cell-select{background:#fff;border-color:var(--accent)}
body.light .filter-select option,body.light .field select option,body.light .qa-select option{background:#fff;color:var(--text)}
body.light .cell-view:hover{background:var(--accent-bg)}
/* Theme toggle */
.theme-toggle{display:flex;align-items:center;gap:8px;margin-top:10px;cursor:pointer;user-select:none}
.theme-toggle-label{font-size:11px;color:var(--text3)}
.toggle-track{width:34px;height:18px;border-radius:9px;background:var(--bg4);border:1px solid var(--border2);position:relative;transition:background .2s;flex-shrink:0}
.toggle-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text3);transition:transform .2s,background .2s}
body.light .toggle-track{background:var(--accent-bg);border-color:var(--accent-border)}
body.light .toggle-thumb{background:var(--accent);transform:translateX(16px)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5;overflow-x:hidden}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px}
.sidebar{position:fixed;top:0;left:0;width:220px;height:100vh;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:24px 0;z-index:100;visibility:hidden}
.logo{padding:0 20px 24px;border-bottom:1px solid var(--border);margin-bottom:14px}
.logo-mark{width:32px;height:32px;background:linear-gradient(135deg,var(--accent),#6b4ef7);border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;box-shadow:0 4px 12px rgba(79,142,247,.3)}
.logo-mark svg{width:18px;height:18px;fill:#fff}
.logo h1{font-size:15px;font-weight:600;letter-spacing:-.4px}
.logo p{font-size:12px;color:var(--text3);margin-top:1px}
.nav{padding:0 10px;flex:1;overflow-y:auto;overflow-x:hidden}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius);cursor:pointer;font-size:13px;color:var(--text2);transition:background var(--tr),color var(--tr);margin-bottom:2px;border:none;background:none;width:100%;text-align:left;font-family:var(--font)}
.nav-item:hover{background:var(--bg3);color:var(--text)}.nav-item.active{background:var(--accent-bg);color:var(--accent)}
.nav-item svg{width:16px;height:16px;opacity:.7;flex-shrink:0}.nav-item.active svg{opacity:1}
.sidebar-footer{padding:14px 20px 0;border-top:1px solid var(--border);margin-top:auto}
.sidebar-footer p{font-size:11px;color:var(--text3);line-height:1.7}
.sync-row{display:flex;align-items:center;gap:6px;margin-top:7px}
.sync-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--text3);transition:background .3s}
.sync-text{font-size:11px;color:var(--text3)}
.main{margin-left:220px;min-height:100vh;padding:30px 34px;max-width:1360px;visibility:hidden}
.page{display:none}.page.active{display:block}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}
.topbar-left h2{font-size:21px;font-weight:600;letter-spacing:-.5px}
.topbar-left p{font-size:13px;color:var(--text2);margin-top:2px}
.topbar-actions{display:flex;gap:8px;flex-shrink:0}
#page-calendario .topbar-actions{flex-wrap:wrap;justify-content:flex-end}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);border:none;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:500;transition:opacity var(--tr),transform .1s;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(79,142,247,.25)}.btn-primary:hover{opacity:.9}
.btn-soft{background:rgba(79,142,247,.13);color:var(--accent);border:1px solid rgba(79,142,247,.3)}.btn-soft:hover{background:rgba(79,142,247,.22);border-color:rgba(79,142,247,.5)}
.btn-ghost{background:var(--bg3);color:var(--text2);border:1px solid var(--border2)}.btn-ghost:hover{background:var(--bg4);color:var(--text)}
.btn-sm{padding:6px 12px;font-size:12px}.btn svg{width:14px;height:14px}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;margin-bottom:12px}
.kpi{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;transition:border-color var(--tr),transform var(--tr)}
.kpi:hover{border-color:var(--border2);transform:translateY(-1px)}
.kpi-top{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.kpi-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.kpi-icon svg{width:15px;height:15px}
.kpi-icon.blue{background:var(--accent-bg);color:var(--accent)}.kpi-icon.purple{background:var(--purple-bg);color:var(--purple)}
.kpi-icon.green{background:var(--green-bg);color:var(--green)}.kpi-icon.amber{background:var(--amber-bg);color:var(--amber)}
.kpi-label{font-size:11px;color:var(--text3);font-weight:500;text-transform:uppercase;letter-spacing:.6px}
.kpi-val{font-size:22px;font-weight:600;letter-spacing:-.8px;color:var(--text);margin-bottom:8px}
.kpi-val.green{color:var(--green)}.kpi-val.amber{color:var(--amber)}
.kpi-breakdown{border-top:1px solid var(--border);padding-top:7px;display:flex;flex-direction:column;gap:3px;max-height:120px;overflow-y:auto}
.kpi-bd-row{display:flex;justify-content:space-between;align-items:center}
.kpi-bd-mes{font-size:11px;color:var(--text3)}.kpi-bd-val{font-size:11px;font-weight:500;font-family:var(--mono)}
.kpi-bd-val.blue{color:var(--accent)}.kpi-bd-val.purple{color:var(--purple)}.kpi-bd-val.green{color:var(--green)}.kpi-bd-val.amber{color:var(--amber)}
.next-shift{border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:16px;border:1px solid var(--amber-border);background:linear-gradient(135deg,rgba(245,166,35,.09) 0%,rgba(245,166,35,.02) 100%);display:flex;align-items:center;gap:14px;position:relative;overflow:hidden}
.next-shift::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--amber),transparent)}
.ns-icon{width:38px;height:38px;border-radius:10px;background:var(--amber-bg);border:1px solid var(--amber-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--amber)}
.ns-icon svg{width:19px;height:19px}
.ns-label{font-size:10px;font-weight:600;color:var(--amber);text-transform:uppercase;letter-spacing:.7px;margin-bottom:2px}
.ns-info{font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.2px;margin-bottom:3px}
.ns-sub{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ns-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex-shrink:0}
.ns-countdown{display:flex;flex-direction:column;align-items:center;background:rgba(245,166,35,.15);border:1px solid var(--amber-border);border-radius:var(--radius);padding:6px 12px}
.ns-countdown-num{font-size:20px;font-weight:700;color:var(--amber);font-family:var(--mono);line-height:1}
.ns-countdown-label{font-size:10px;color:var(--amber);opacity:.7;margin-top:1px;text-align:center}
.ns-val{text-align:right}.ns-val-num{font-size:17px;font-weight:600;color:var(--amber);font-family:var(--mono)}.ns-val-sub{font-size:10px;color:var(--text3)}
.no-future{border-radius:var(--radius-lg);padding:11px 16px;margin-bottom:16px;border:1px dashed var(--border2);background:var(--bg2);display:flex;align-items:center;gap:10px;color:var(--text3);font-size:12px}
/* Red next shift */
.next-shift-red{border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:16px;border:1px solid rgba(242,95,92,0.4);background:linear-gradient(135deg,rgba(242,95,92,0.10) 0%,rgba(242,95,92,0.03) 100%);display:flex;align-items:center;gap:14px;position:relative;overflow:hidden}
.next-shift-red::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--red),transparent)}
.ns-icon-red{width:38px;height:38px;border-radius:10px;background:var(--red-bg);border:1px solid rgba(242,95,92,0.35);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--red)}
.ns-icon-red svg{width:19px;height:19px}
.ns-label-red{font-size:10px;font-weight:600;color:var(--red);text-transform:uppercase;letter-spacing:.7px;margin-bottom:5px}
.ns-main-line{font-size:17px;font-weight:600;color:var(--text);letter-spacing:-.3px;margin-bottom:5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ns-local{color:var(--red);font-weight:700}
.ns-detail-line{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ns-dot-sep{color:var(--text3);opacity:.6}
.ns-cd-wrap{background:rgba(242,95,92,0.15);border:1px solid rgba(242,95,92,0.3);border-radius:var(--radius);padding:8px 14px;display:flex;align-items:center}
.ns-cd-block{display:flex;flex-direction:column;align-items:center}
.ns-cd-num{font-size:22px;font-weight:700;color:var(--red);font-family:var(--mono);line-height:1}
.ns-cd-lbl{font-size:10px;color:var(--red);opacity:.7;margin-top:1px}
.ns-cd-sep{font-size:20px;font-weight:700;color:var(--red);opacity:.5;padding:0 4px;align-self:flex-start;margin-top:2px}
.ns-val-red{text-align:right}
.ns-val-num-red{font-size:17px;font-weight:600;color:var(--red);font-family:var(--mono)}
.ns-val-sub-red{font-size:10px;color:var(--text3)}
.toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center}
.filter-select{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:12px;padding:6px 28px 6px 10px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238892a4' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;transition:border-color var(--tr)}
.filter-select:focus{outline:none;border-color:var(--accent)}.filter-select option{background:#1e2535}
.search-wrap{position:relative;margin-left:auto}
.search-wrap svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:13px;height:13px;color:var(--text3)}
.search-input{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:12px;padding:6px 10px 6px 28px;width:180px;transition:border-color var(--tr),width var(--tr)}
.search-input:focus{outline:none;border-color:var(--accent);width:220px}.search-input::placeholder{color:var(--text3)}
.month-section{margin-bottom:16px}
.month-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--tr);user-select:none}
.month-header:hover{background:var(--bg3)}.month-header.open{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom-color:transparent}
.month-left{display:flex;align-items:center;gap:10px;min-width:0}
.month-name{font-size:14px;font-weight:600;letter-spacing:-.3px;white-space:nowrap}
.month-pills{display:flex;gap:5px;flex-wrap:wrap}
.pill{font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px;white-space:nowrap}
.pill-red{background:rgba(242,95,92,.12);color:var(--red)}
.pill-blue{background:var(--accent-bg);color:var(--accent)}.pill-purple{background:var(--purple-bg);color:var(--purple)}
.pill-green{background:var(--green-bg);color:var(--green)}.pill-amber{background:var(--amber-bg);color:var(--amber)}
.month-chevron{width:18px;height:18px;color:var(--text3);transition:transform .2s;flex-shrink:0}.month-chevron.open{transform:rotate(180deg)}
.table-wrap{border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);overflow:hidden}
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
thead th{background:var(--bg3);padding:9px 12px;text-align:left;font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;border-bottom:1px solid var(--border);overflow:hidden}
tbody td{padding:0;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;position:relative;overflow:hidden}
tbody tr:last-child td{border-bottom:none}
tbody tr{transition:background var(--tr)}
tbody tr:hover td{background:rgba(255,255,255,.025)}
.total-row td{background:var(--bg3);font-size:11px;font-weight:500;color:var(--text2);border-top:1px solid var(--border);border-bottom:none;padding:7px 9px}
.quick-add-row td{background:rgba(79,142,247,.04);border-top:1px dashed var(--accent-border)}
.qa-trigger{padding:7px 9px;display:flex;cursor:pointer;color:var(--accent);font-size:12px;align-items:center;gap:5px;min-height:34px;transition:background var(--tr)}
.qa-trigger:hover{background:var(--accent-bg)}
.qa-input{background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:13px;padding:7px 9px;width:100%;outline:none;transition:background var(--tr)}
.qa-input:focus{background:rgba(79,142,247,.07)}
.qa-select{background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:13px;padding:7px 6px;width:100%;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;transition:background var(--tr)}
.qa-select:focus{background:rgba(79,142,247,.07)}.qa-select option{background:#1e2535}
.cell-view{padding:7px 10px;cursor:pointer;display:block;min-height:34px;transition:background var(--tr);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell-view:hover{background:var(--accent-bg);outline:1px solid var(--accent-border);border-radius:3px}
.cell-ro{padding:9px 12px;display:block;min-height:38px}
.cell-edit-wrap{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;display:flex;align-items:stretch}
.cell-input{width:100%;background:var(--bg4);border:2px solid var(--accent);border-radius:4px;color:var(--text);font-family:var(--font);font-size:13px;padding:5px 9px;outline:none}
.cell-select{width:100%;background:var(--bg4);border:2px solid var(--accent);border-radius:4px;color:var(--text);font-family:var(--font);font-size:13px;padding:3px 7px;outline:none;cursor:pointer}
.cell-select option{background:#1e2535}
.tipo{display:inline-block;font-size:11px;font-weight:500;padding:2px 7px;border-radius:5px;font-family:var(--mono);border:1px solid transparent}
.dur{font-family:var(--mono);font-size:12px;font-weight:500}
.val-past{font-family:var(--mono);font-size:12px;color:var(--green);font-weight:500}
.val-future{font-family:var(--mono);font-size:12px;color:var(--amber);font-weight:500}
.obs-txt{color:var(--text3);font-size:12px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.data-txt{font-family:var(--mono);font-size:12px;color:var(--text2)}
.time-txt{font-family:var(--mono);font-size:12px;color:var(--text3)}
.dow-txt{font-size:11px;color:var(--text3)}
.status-pago{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--green)}
.status-pend{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text3)}
.status-obs{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--amber)}
.dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;background:currentColor}
.btn-icon{width:26px;height:26px;border-radius:6px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text3);transition:background var(--tr),color var(--tr);margin:auto}
.btn-icon:hover{background:var(--red-bg);color:var(--red)}.btn-icon.dup:hover{background:var(--accent-bg);color:var(--accent)}.btn-icon svg{width:13px;height:13px}
.actions-cell{display:flex;align-items:center;justify-content:center;gap:2px;padding:0 4px}
.edit-hint{font-size:11px;color:var(--text3);margin-bottom:10px;padding:5px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;align-items:center;gap:6px}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:400;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.modal-overlay.open{display:flex}
.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-xl);padding:26px;width:100%;max-width:500px;animation:slideUp .18s ease;max-height:90vh;overflow-y:auto}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.modal-header{margin-bottom:18px;display:flex;align-items:flex-start;justify-content:space-between}
.modal-header h3{font-size:16px;font-weight:600;letter-spacing:-.3px}.modal-header p{font-size:12px;color:var(--text2);margin-top:2px}
.modal-close{background:none;border:none;cursor:pointer;color:var(--text3);padding:2px;border-radius:5px;display:flex}
.modal-close:hover{color:var(--text);background:var(--bg3)}.modal-close svg{width:16px;height:16px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.form-grid.full{grid-template-columns:1fr}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.field input,.field select{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:13px;padding:8px 11px;width:100%;transition:border-color var(--tr)}
.field input:focus,.field select:focus{outline:none;border-color:var(--accent);background:var(--bg4)}
.field select option{background:var(--bg3)}
.preview-box{background:var(--bg3);border-radius:var(--radius);padding:8px 12px;margin-bottom:8px;display:flex;gap:16px;min-height:36px;align-items:center}
.preview-box .pv-dur{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--accent)}
.preview-box .pv-val{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--green)}
.modal-actions{display:flex;gap:8px;margin-top:18px}.modal-actions .btn{flex:1;justify-content:center}
.settings-section{margin-bottom:18px}
.settings-section h4{font-size:10px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.7px;margin-bottom:9px}
.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;min-height:28px}
.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:var(--bg3);border:1px solid var(--border2);border-radius:20px;font-size:12px;color:var(--text)}
.tag-del{background:none;border:none;cursor:pointer;color:var(--text3);font-size:14px;line-height:1;padding:0;transition:color var(--tr)}.tag-del:hover{color:var(--red)}
.tag-add-row{display:flex;gap:7px}
.tag-add-row input{flex:1;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:13px;padding:6px 10px;transition:border-color var(--tr)}
.tag-add-row input:focus{outline:none;border-color:var(--accent)}
.tag-add-row button{padding:6px 12px;border-radius:var(--radius);background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);cursor:pointer;font-size:12px;font-family:var(--font);font-weight:500}
.rates-tbl{width:100%;border-collapse:collapse;margin-bottom:6px;font-size:13px}
.rates-tbl th{font-size:10px;font-weight:600;color:var(--text3);padding:5px 9px;text-align:left;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.4px}
.rates-tbl td{padding:4px 6px;border-bottom:1px solid var(--border)}
.rates-tbl td:first-child{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);padding-left:9px}
.rates-tbl input{background:var(--bg3);border:1px solid var(--border2);border-radius:6px;color:var(--text);font-family:var(--mono);font-size:13px;padding:4px 8px;width:80px;transition:border-color var(--tr)}
.rates-tbl input:focus{outline:none;border-color:var(--accent)}
.bonus-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2);margin-top:5px}
.bonus-row input{background:var(--bg3);border:1px solid var(--border2);border-radius:6px;color:var(--text);font-family:var(--mono);font-size:13px;padding:4px 8px;width:65px;transition:border-color var(--tr)}
.bonus-row input:focus{outline:none;border-color:var(--accent)}
.note{font-size:11px;color:var(--text3);margin-top:5px;line-height:1.5}
/* Google Calendar */
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.resumo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;align-items:start}
.resumo-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;transition:border-color var(--tr),transform var(--tr)}
.resumo-card:hover{border-color:var(--border2);transform:translateY(-1px)}
.resumo-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.resumo-card-title{font-size:14px;font-weight:600}.resumo-card-count{font-size:11px;color:var(--text3)}
.resumo-stat{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--border)}
.resumo-stat:last-child{border-bottom:none}.resumo-stat-label{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:6px}
.resumo-stat-val{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--text)}
.resumo-stat-val.green{color:var(--green)}.resumo-stat-val.blue{color:var(--accent)}.resumo-stat-val.amber{color:var(--amber)}.resumo-stat-val.purple{color:var(--purple)}
/* Mini status dot for resumo */
.resumo-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
/* 4-layer value bar inside resumo card */
.resumo-val-bar{position:relative;height:4px;border-radius:2px;background:var(--border2);margin-top:6px;overflow:hidden}
.resumo-val-layer{position:absolute;left:0;top:0;height:100%;border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}
.empty{text-align:center;padding:40px 20px;color:var(--text3)}
.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:16px;color:var(--text2)}
.spinner{width:32px;height:32px;border:3px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;bottom:22px;right:22px;background:var(--bg4);border:1px solid var(--border2);border-radius:var(--radius);padding:10px 16px;font-size:13px;color:var(--text);z-index:999;display:none;animation:fadeIn .15s ease;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.toast.show{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
/* Setup banner */
.setup-banner{background:var(--amber-bg);border:1px solid var(--amber-border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:20px;display:flex;align-items:center;gap:14px}
.setup-banner-icon{width:36px;height:36px;border-radius:9px;background:var(--amber-bg);border:1px solid var(--amber-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--amber)}
.setup-banner-icon svg{width:18px;height:18px}
.setup-banner h4{font-size:13px;font-weight:600;color:var(--amber);margin-bottom:2px}
.setup-banner p{font-size:12px;color:var(--text2)}
/* ══════════════════════════════════════════
   TABLET ≤900px
══════════════════════════════════════════ */
@media(max-width:900px){
  .main{padding:22px 20px}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .resumo-grid{grid-template-columns:1fr 1fr}
  .home-grid{grid-template-columns:1fr 1fr}
  .gastos-grid{grid-template-columns:1fr}
  .flow-steps{flex-direction:column;gap:10px}
  .flow-step:not(:last-child)::after{content:'↓';position:static;transform:none;color:var(--text3);font-size:14px;text-align:center;width:100%;display:block;margin:4px 0}
  .topbar{flex-wrap:wrap;gap:10px}
  .topbar-actions{flex-wrap:wrap}
  .chart-bars{gap:5px}
  .chart-col{min-width:36px}
  .rec-bars{flex-direction:column;gap:6px}
}


/* ── PIN / Login Screen ── */
.pin-screen{position:fixed;inset:0;background:var(--bg);z-index:999;display:flex;align-items:center;justify-content:center;padding:20px}
.pin-screen.hidden{display:none}
.pin-card{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-xl);padding:32px 28px;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}
.pin-logo{width:120px;height:120px;background:none;border-radius:60px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:none}
.pin-logo svg{width:26px;height:26px;fill:#fff}
.pin-title{font-size:20px;font-weight:600;letter-spacing:-.4px;margin-bottom:4px}
.pin-sub{font-size:13px;color:var(--text2);margin-bottom:20px;text-align:center;min-height:20px}
/* User selector */
.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;width:100%;margin-bottom:20px;max-height:260px;overflow-y:auto}
.user-btn{background:var(--bg3);border:1.5px solid var(--border2);border-radius:var(--radius-lg);padding:12px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;transition:border-color var(--tr),background var(--tr);font-family:var(--font);position:relative;width:100%}
.user-btn:hover{border-color:var(--accent);background:var(--accent-bg)}
.user-btn.selected{border-color:var(--accent);background:var(--accent-bg)}
.user-btn-del{position:absolute;top:4px;right:4px;background:rgba(242,95,92,.15);border:none;cursor:pointer;color:var(--red);font-size:12px;line-height:1;padding:2px 4px;border-radius:4px;opacity:0;transition:opacity .15s}
.user-btn:hover .user-btn-del{opacity:1}
.user-avatar{width:36px;height:36px;border-radius:50%;background:#111318;border:1.5px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;color:#fff;flex-shrink:0}
.user-name{font-size:12px;font-weight:500;color:var(--text);text-align:center;word-break:break-word;line-height:1.3}
.user-add-btn{background:var(--bg3);border:1.5px dashed var(--border2);border-radius:var(--radius-lg);padding:12px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;transition:border-color var(--tr),background var(--tr);font-family:var(--font);color:var(--text3);width:100%}
.user-add-btn:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.user-add-btn svg{width:20px;height:20px}.user-add-btn span{font-size:11px;font-weight:500}
/* New profile form */
.new-profile-form{display:none;flex-direction:column;gap:10px;width:100%;margin-bottom:16px}
.new-profile-form.open{display:flex}
.new-profile-form input{background:var(--bg3);border:1.5px solid var(--border2);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:14px;padding:10px 14px;width:100%;text-align:center;transition:border-color var(--tr)}
.new-profile-form input:focus{outline:none;border-color:var(--accent);background:var(--bg4)}
.new-profile-form input::placeholder{color:var(--text3)}
.new-profile-actions{display:flex;gap:8px}
.new-profile-actions button{flex:1;padding:9px;border-radius:var(--radius);font-family:var(--font);font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--border2)}
.np-cancel{background:var(--bg3);color:var(--text2)}.np-create{background:var(--accent);color:#fff;border-color:var(--accent)}
/* PIN dots */
.pin-dots{display:flex;gap:14px;margin-bottom:22px;height:16px;align-items:center}
.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--border2);background:transparent;transition:all .15s}
.pin-dot.filled{background:var(--accent);border-color:var(--accent);transform:scale(1.15)}
.pin-dot.error{background:var(--red);border-color:var(--red)}
/* PIN keypad */
.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:216px}
.pin-key{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:15px;font-size:20px;font-weight:500;color:var(--text);cursor:pointer;text-align:center;font-family:var(--mono);transition:background var(--tr),transform .1s;user-select:none}
.pin-key:hover{background:var(--bg4)}.pin-key:active{transform:scale(.93);background:var(--accent-bg)}
.pin-key.del{font-size:16px;color:var(--text2)}.pin-key.empty{background:transparent;border-color:transparent;cursor:default;pointer-events:none}
.pin-msg{font-size:12px;color:var(--text3);margin-top:14px;min-height:18px;text-align:center}
.pin-msg.error{color:var(--red)}.pin-msg.success{color:var(--green)}
/* Sidebar user info */
.sidebar-user{padding:10px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);margin-bottom:12px}
.sidebar-user-avatar{width:28px;height:28px;border-radius:50%;background:#111318;border:1.5px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex-shrink:0}
.sidebar-user-name{font-size:13px;font-weight:500;color:var(--text)}
.sidebar-user-out{background:none;border:none;cursor:pointer;color:var(--text3);padding:2px;border-radius:5px;margin-left:auto;display:flex}
.sidebar-user-out:hover{color:var(--red)}.sidebar-user-out svg{width:14px;height:14px}
/* Upcoming shifts */
.upcoming-shifts{border-radius:var(--radius-lg);margin-bottom:16px;border:1px solid rgba(245,166,35,.25);background:rgba(245,166,35,.05);overflow:hidden}
.upcoming-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid rgba(245,166,35,.1)}
.upcoming-item:last-child{border-bottom:none}
.upcoming-num{font-size:11px;font-weight:600;color:var(--amber);opacity:.6;width:16px;flex-shrink:0;text-align:center}
.upcoming-date{font-family:var(--mono);font-size:12px;color:var(--text2);white-space:nowrap}
.upcoming-time{font-family:var(--mono);font-size:12px;color:var(--text3);white-space:nowrap}
.upcoming-local{font-size:12px;color:var(--text);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upcoming-dur{font-family:var(--mono);font-size:11px;color:var(--amber);opacity:.8;white-space:nowrap}
/* ── Themes ─────────────────────────────────────────────────────── */
body.theme-ocean{
  --bg:#0d1520;--bg2:#1a2332;--bg3:#1f2c3e;--bg4:#263347;
  --border:rgba(45,139,139,.15);--border2:rgba(45,139,139,.25);
  --text:#f1faee;--text2:#a8dadc;--text3:#5a8a8a;
  --accent:#2d8b8b;--accent-bg:rgba(45,139,139,0.15);--accent-border:rgba(45,139,139,0.35);
  --green:#2d8b8b;--green-bg:rgba(45,139,139,0.12);--green-border:rgba(45,139,139,0.28);
  --amber:#a8dadc;--amber-bg:rgba(168,218,220,0.12);--amber-border:rgba(168,218,220,0.3);
  --purple:#4a7fa5;--purple-bg:rgba(74,127,165,0.12);--purple-border:rgba(74,127,165,0.28);
  --red:#e07070;--red-bg:rgba(224,112,112,0.10);
}
body.theme-forest{
  --bg:#0e1a0d;--bg2:#162315;--bg3:#1d2e1b;--bg4:#243822;
  --border:rgba(125,132,113,.15);--border2:rgba(125,132,113,.25);
  --text:#faf9f6;--text2:#a4ac86;--text3:#5a6348;
  --accent:#7d8471;--accent-bg:rgba(125,132,113,0.15);--accent-border:rgba(125,132,113,0.35);
  --green:#6a9b5e;--green-bg:rgba(106,155,94,0.12);--green-border:rgba(106,155,94,0.28);
  --amber:#a4ac86;--amber-bg:rgba(164,172,134,0.12);--amber-border:rgba(164,172,134,0.3);
  --purple:#8d9e7a;--purple-bg:rgba(141,158,122,0.12);--purple-border:rgba(141,158,122,0.28);
  --red:#c97b6b;--red-bg:rgba(201,123,107,0.10);
}
body.theme-golden{
  --bg:#1c1208;--bg2:#2a1c0c;--bg3:#342210;--bg4:#3e2a14;
  --border:rgba(244,169,0,.15);--border2:rgba(244,169,0,.25);
  --text:#fdf6e8;--text2:#d4b896;--text3:#8a7258;
  --accent:#f4a900;--accent-bg:rgba(244,169,0,0.15);--accent-border:rgba(244,169,0,0.35);
  --green:#8fb87a;--green-bg:rgba(143,184,122,0.12);--green-border:rgba(143,184,122,0.28);
  --amber:#f4a900;--amber-bg:rgba(244,169,0,0.12);--amber-border:rgba(244,169,0,0.3);
  --purple:#c1666b;--purple-bg:rgba(193,102,107,0.12);--purple-border:rgba(193,102,107,0.28);
  --red:#c1666b;--red-bg:rgba(193,102,107,0.10);
}
body.theme-galaxy{
  --bg:#100a1e;--bg2:#18102c;--bg3:#21163a;--bg4:#2b1e3e;
  --border:rgba(164,144,194,.15);--border2:rgba(164,144,194,.25);
  --text:#e6e6fa;--text2:#a490c2;--text3:#6b5c8a;
  --accent:#a490c2;--accent-bg:rgba(164,144,194,0.15);--accent-border:rgba(164,144,194,0.35);
  --green:#7eb8a4;--green-bg:rgba(126,184,164,0.12);--green-border:rgba(126,184,164,0.28);
  --amber:#c9a96e;--amber-bg:rgba(201,169,110,0.12);--amber-border:rgba(201,169,110,0.3);
  --purple:#4a4e8f;--purple-bg:rgba(74,78,143,0.15);--purple-border:rgba(74,78,143,0.35);
  --red:#c07090;--red-bg:rgba(192,112,144,0.10);
}
body.theme-minimal{
  --bg:#1a1f24;--bg2:#232a30;--bg3:#2c343c;--bg4:#353d47;
  --border:rgba(112,128,144,.15);--border2:rgba(112,128,144,.25);
  --text:#f0f4f8;--text2:#a0aab4;--text3:#606a74;
  --accent:#708090;--accent-bg:rgba(112,128,144,0.15);--accent-border:rgba(112,128,144,0.35);
  --green:#6a9e80;--green-bg:rgba(106,158,128,0.12);--green-border:rgba(106,158,128,0.28);
  --amber:#b0a080;--amber-bg:rgba(176,160,128,0.12);--amber-border:rgba(176,160,128,0.3);
  --purple:#7a8090;--purple-bg:rgba(122,128,144,0.12);--purple-border:rgba(122,128,144,0.28);
  --red:#c07878;--red-bg:rgba(192,120,120,0.10);
}
/* Light variants for each theme */
body.light.theme-ocean{--bg:#e8f4f4;--bg2:#ffffff;--bg3:#d6eeee;--bg4:#c0e4e4;--border:rgba(45,139,139,.12);--border2:rgba(45,139,139,.22);--text:#0a2020;--text2:#2d6868;--text3:#5a8888;--accent:#1a7070;--accent-bg:rgba(26,112,112,0.10);}
body.light.theme-forest{--bg:#edf2e8;--bg2:#ffffff;--bg3:#dde8d4;--bg4:#ccdcc0;--border:rgba(45,74,43,.12);--border2:rgba(45,74,43,.22);--text:#0e1a0d;--text2:#2d4a2b;--text3:#5a7048;--accent:#2d4a2b;--accent-bg:rgba(45,74,43,0.10);}
body.light.theme-golden{--bg:#fdf6e3;--bg2:#ffffff;--bg3:#f8ecc8;--bg4:#f2e0a8;--border:rgba(74,64,58,.12);--border2:rgba(74,64,58,.22);--text:#2a1c0c;--text2:#4a403a;--text3:#8a7258;--accent:#c1666b;--accent-bg:rgba(193,102,107,0.10);}
body.light.theme-galaxy{--bg:#f0eef8;--bg2:#ffffff;--bg3:#e2ddf0;--bg4:#d0c8e8;--border:rgba(43,30,62,.12);--border2:rgba(43,30,62,.22);--text:#100a1e;--text2:#2b1e3e;--text3:#6b5c8a;--accent:#4a4e8f;--accent-bg:rgba(74,78,143,0.10);}
body.light.theme-minimal{--bg:#f4f6f8;--bg2:#ffffff;--bg3:#e8ecf0;--bg4:#d8dfe6;--border:rgba(54,69,79,.12);--border2:rgba(54,69,79,.22);--text:#1a2028;--text2:#36454f;--text3:#708090;--accent:#36454f;--accent-bg:rgba(54,69,79,0.10);}
/* Theme card selector */
.theme-card{border:2px solid var(--border2);border-radius:12px;padding:14px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.theme-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.theme-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.theme-card .tc-check{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:var(--accent);display:none;align-items:center;justify-content:center}
.theme-card.selected .tc-check{display:flex}
.theme-swatch{display:flex;gap:4px;margin-bottom:8px;height:28px;border-radius:6px;overflow:hidden}
.chart-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 20px 10px;margin-bottom:18px}
.chart-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}
.chart-sub{font-size:11px;color:var(--text3);margin-bottom:16px}
.chart-toggle{display:flex;gap:6px;margin-bottom:16px}
.chart-tab{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:500;cursor:pointer;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);transition:all var(--tr)}
.chart-tab.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}
.chart-area{width:100%;overflow-x:auto;overflow-y:visible;padding-bottom:8px;padding-top:20px}
.chart-bars{display:flex;gap:8px;align-items:flex-end;min-height:140px;padding:0 4px;overflow:visible}
.chart-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:44px;max-width:72px;position:relative}
.chart-val{font-size:10px;font-family:var(--mono);color:var(--text2);white-space:nowrap;min-height:14px;text-align:center}
.chart-bar-wrap{width:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer}
/* Layered bars: total → realizado → nf emitida → pago */
.chart-bar-layer{width:100%;position:absolute;bottom:0;border-radius:5px 5px 0 0;transition:height .4s cubic-bezier(.4,0,.2,1);pointer-events:none}
.chart-bar-layer.total{opacity:.45}
.chart-bar-layer.realizado{opacity:.72}
.chart-bar-layer.nf{opacity:.86}
.chart-bar-layer.pago{opacity:1}
.chart-bar-hitzone{width:100%;height:100%;position:absolute;top:0;left:0}
.chart-tooltip{position:fixed;background:var(--bg4);border:1px solid var(--border2);border-radius:8px;padding:8px 14px;font-size:11px;color:var(--text);pointer-events:none;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,.5);display:none;line-height:1.8;min-width:160px}
.chart-tip-row{display:flex;align-items:center;gap:8px}
.chart-tip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.chart-tip-label{color:var(--text3);flex:1}
.chart-tip-val{font-family:var(--mono);font-weight:600;color:var(--text)}
.chart-label{font-size:10px;color:var(--text3);text-align:center;white-space:nowrap}
.tut-steps{display:flex;flex-direction:column;gap:16px}
.tut-step{display:flex;gap:14px;align-items:flex-start}
.tut-num{width:26px;height:26px;border-radius:50%;background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.tut-body{flex:1;min-width:0}
.tut-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}
.tut-desc{font-size:12px;color:var(--text2);line-height:1.6}
.tut-desc code{background:var(--bg3);padding:1px 5px;border-radius:4px;font-family:var(--mono);font-size:11px;color:var(--accent)}
.tut-code-wrap{position:relative;margin-top:8px}
.tut-code{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius);padding:12px;font-family:var(--mono);font-size:11px;color:var(--text2);overflow-x:auto;white-space:pre;line-height:1.6;max-height:180px;overflow-y:auto;margin:0}
.tut-copy-btn{position:absolute;top:6px;right:6px;background:var(--bg4);border:1px solid var(--border2);border-radius:6px;color:var(--text2);font-size:11px;padding:3px 10px;cursor:pointer;font-family:var(--font);z-index:1}
.tut-copy-btn:hover{background:var(--accent-bg);color:var(--accent)}
/* Calendar */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border)}
.cal-dow{background:var(--bg3);padding:8px 4px;text-align:center;font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.cal-day{background:var(--bg2);padding:3px 4px;min-height:70px;position:relative;transition:background var(--tr);cursor:pointer}
.cal-day:hover{background:var(--bg3)}
.cal-day.other-month{opacity:.4}
.cal-day.past{background:var(--bg1);opacity:.72}
.cal-day.past .cal-day-num{color:var(--text3)}
.cal-day.today{background:rgba(79,142,247,0.08);box-shadow:inset 0 0 0 2px var(--accent)}
.cal-day-num{font-size:11px;font-weight:600;color:var(--text2);margin-bottom:2px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.cal-day.today .cal-day-num{background:var(--accent);color:#fff;font-weight:700}
.cal-event{font-size:9px;font-weight:500;padding:1px 4px;border-radius:3px;margin-bottom:1px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:2px}
.cal-event:hover{opacity:.8}
.cal-more{font-size:10px;color:var(--text3);cursor:pointer;padding:1px 5px}
.cal-more:hover{color:var(--accent)}
.cal-add{font-size:11px;cursor:pointer;padding:2px 5px;border-radius:4px;opacity:0;transition:opacity var(--tr),background var(--tr),color var(--tr)}
.cal-day:hover .cal-add,.week-day:hover .cal-add{opacity:1}
.cal-add-plantao{color:var(--text3)}
.cal-add-plantao:hover{color:var(--accent);background:var(--accent-bg)}
.cal-add-evento{color:var(--text3)}
.cal-add-evento:hover{color:var(--amber);background:var(--amber-bg)}
/* Week view */
.week-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.week-day{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;min-height:230px;padding:10px;cursor:pointer;transition:background var(--tr),border-color var(--tr)}
.week-day:hover{background:var(--bg3);border-color:var(--border2)}
.week-day.today-col{box-shadow:inset 0 0 0 2px var(--accent);background:rgba(79,142,247,.06)}
.week-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.week-day-kicker{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.week-day-date{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text)}
.week-day.today-col .week-day-date{color:var(--accent)}
.week-day-count{font-family:var(--mono);font-size:10px;color:var(--text3);background:var(--bg3);border:1px solid var(--border);border-radius:999px;padding:2px 7px;white-space:nowrap}
.week-items{display:flex;flex-direction:column;gap:6px}
.week-event{font-size:11px;font-weight:500;padding:7px 8px;border-radius:7px;cursor:pointer;border-left:3px solid transparent;background:var(--bg3);min-width:0}
.week-event:hover{opacity:.9}
.week-event-top{display:flex;align-items:center;gap:6px;min-width:0}
.week-event-time{font-family:var(--mono);font-size:10px;white-space:nowrap;opacity:.85}
.week-event-title{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.week-event-meta{font-size:10px;opacity:.78;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.week-event.task{border-left-color:var(--green);color:var(--text)}
.week-event.task.prio-alta{border-left-color:var(--red)}
.week-event.task.prio-media{border-left-color:var(--amber)}
.week-empty{font-size:12px;color:var(--text3);padding:10px 8px;border:1px dashed var(--border2);border-radius:var(--radius);text-align:center}
.week-summary{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px;color:var(--text3);font-size:12px}
.week-summary span{background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:4px 9px}
.week-day .cal-add{opacity:.72;display:inline-flex;margin-top:8px;margin-right:6px;font-size:11px}
.week-day .cal-add:hover{opacity:1}
/* Sortable headers */
thead th.sortable{cursor:pointer;user-select:none;transition:color var(--tr)}
thead th.sortable:hover{color:var(--text)}
thead th.sort-asc::after{content:' ↑';color:var(--accent)}
thead th.sort-desc::after{content:' ↓';color:var(--accent)}
/* Finanças */
.fin-page{display:none}.fin-page.active{display:block}
.fin-tab{background:none;border:none;padding:6px 14px;border-radius:var(--radius);font-family:var(--font);font-size:12px;font-weight:500;color:var(--text2);cursor:pointer;transition:background var(--tr),color var(--tr)}
.fin-tab:hover{background:var(--bg3);color:var(--text)}
.fin-tab.active{background:var(--green-bg);color:var(--green);font-weight:600}
.flow-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--green);margin-bottom:14px;font-family:var(--font)}
.flow-step-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px;white-space:nowrap;font-family:var(--font)}

.flow-prog-label{display:flex;justify-content:space-between;font-size:11px;color:var(--text2);margin-bottom:5px;font-family:var(--font)}
.gf-item-name{font-size:12px;color:var(--text);font-family:var(--font)}


.rec-bar-label{font-size:10px;color:var(--text3);width:56px;text-align:right;font-family:var(--font)}

.rec-loader{display:flex;align-items:center;gap:10px;padding:20px;color:var(--text3);font-size:13px;font-family:var(--font)}
.gs-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;font-family:var(--font)}

.edit-hint{font-size:11px;color:var(--text3);padding:6px 12px;background:var(--bg3);border-radius:var(--radius);margin-bottom:12px;display:flex;align-items:center;gap:6px;font-family:var(--font)}



.flow-banner{background:var(--bg2);border:1px solid var(--green-border);border-radius:var(--radius-lg);padding:18px 22px;margin-bottom:18px;position:relative;overflow:hidden}
.flow-banner::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--green),transparent)}
.flow-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--green);margin-bottom:14px}
.flow-steps{display:flex;align-items:center;gap:0;flex-wrap:wrap}
.flow-step{display:flex;flex-direction:column;align-items:center;padding:0 18px;position:relative}
.flow-step:not(:last-child)::after{content:'→';position:absolute;right:-10px;top:50%;transform:translateY(-50%);color:var(--text3);font-size:16px}
.flow-step-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px;white-space:nowrap}
.flow-step-val{font-family:var(--mono);font-size:18px;font-weight:600;white-space:nowrap}
.flow-step-val.g{color:var(--green)}.flow-step-val.a{color:var(--amber)}.flow-step-val.r{color:var(--red)}.flow-step-val.b{color:var(--accent)}
.flow-prog{flex:1;min-width:160px;padding:0 18px}
.flow-prog-label{display:flex;justify-content:space-between;font-size:11px;color:var(--text2);margin-bottom:5px}
.flow-prog-bar{height:6px;background:var(--bg4);border-radius:3px;overflow:hidden}
.flow-prog-fill{height:100%;border-radius:3px;background:var(--green);transition:width .5s}
.gastos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px;margin-bottom:18px}
.gf-col-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.gf-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}
.gf-item:last-child{border-bottom:none}
.gf-item-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.gf-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.gf-item-name{font-size:12px;color:var(--text)}
.gf-item-val{font-family:var(--mono);font-size:13px;font-weight:600;flex-shrink:0}
.gf-item-actions{display:flex;gap:2px;flex-shrink:0}
.gf-add-btn{width:100%;margin-top:8px;padding:7px;background:transparent;border:1px dashed var(--border2);border-radius:var(--radius);color:var(--text3);font-family:var(--font);font-size:12px;cursor:pointer;transition:all var(--tr)}
.gf-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.gf-summary{background:var(--bg3);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.gs-item{display:flex;flex-direction:column;gap:2px}
.gs-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.gs-val{font-family:var(--mono);font-size:15px;font-weight:600}
.rec-stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;position:relative;overflow:hidden}
.rec-stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.rec-stat-card.green::before{background:linear-gradient(90deg,var(--green),transparent)}
.rec-stat-card.amber::before{background:linear-gradient(90deg,var(--amber),transparent)}
.rec-month-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}
.rec-month-row:last-child{border-bottom:none}
.rec-bars{flex:1;display:flex;flex-direction:column;gap:4px;margin:0 14px}
.rec-bar-row{display:flex;align-items:center;gap:6px}
.rec-bar-label{font-size:10px;color:var(--text3);width:56px;text-align:right}
.rec-bar-bg{flex:1;height:5px;background:var(--bg4);border-radius:3px;overflow:hidden}
.rec-bar-fill{height:100%;border-radius:3px;transition:width .5s}
.rec-bar-val{font-size:11px;font-family:var(--mono);font-weight:500;min-width:72px}
.rec-loader{display:flex;align-items:center;gap:10px;padding:20px;color:var(--text3);font-size:13px}
.spinner{width:18px;height:18px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
.resumo-tbl-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:16px}
.type-tabs{display:flex;gap:0;background:var(--bg3);border-radius:var(--radius);padding:3px;margin-bottom:16px}
.type-tab{flex:1;padding:7px;border:none;background:none;font-family:var(--font);font-size:13px;font-weight:500;cursor:pointer;border-radius:8px;color:var(--text2);transition:all .15s}
.type-tab.ai{background:var(--bg2);color:var(--green);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.type-tab.ae{background:var(--bg2);color:var(--red);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.val-green{font-family:var(--mono);font-size:12px;color:var(--green);font-weight:500}
.val-red{font-family:var(--mono);font-size:12px;color:var(--red);font-weight:500}
.val-amber{font-family:var(--mono);font-size:12px;color:var(--amber);font-weight:500}
.qa-row-trigger{background:rgba(62,207,142,.03);border-top:1px dashed var(--green-border)}
.qa-trigger{padding:7px 10px;display:flex;cursor:pointer;color:var(--green);font-size:12px;align-items:center;gap:5px;min-height:34px;transition:background var(--tr)}
.qa-trigger:hover{background:var(--green-bg)}.qa-trigger svg{width:13px;height:13px;flex-shrink:0}
.qa-input{background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:13px;padding:7px 9px;width:100%;outline:none}
.qa-input:focus{background:rgba(62,207,142,.07)}.qa-input::placeholder{color:var(--text3);font-size:12px}
.qa-select{background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:13px;padding:7px 6px;width:100%;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none}
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:20px}
.home-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;cursor:pointer;transition:background var(--tr),border-color var(--tr)}
.home-card:hover{background:var(--bg3);border-color:var(--border2)}
.home-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.home-card-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.home-card-icon svg{width:18px;height:18px}
.home-card-title{font-size:14px;font-weight:600;color:var(--text)}
.home-card-rows{display:flex;flex-direction:column;gap:6px}
.home-card-row{display:flex;justify-content:space-between;align-items:center;font-size:12px}
.home-card-row-label{color:var(--text2)}
.home-card-row-val{font-family:var(--mono);font-weight:600;color:var(--text)}
.home-card-row-val.green{color:var(--green)}
.home-card-row-val.amber{color:var(--amber)}
.home-card-row-val.accent{color:var(--accent)}
.home-mini-list{display:flex;flex-direction:column;gap:4px;margin-top:4px}
.home-mini-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;background:var(--bg3);border-radius:6px;font-size:11px;color:var(--text2);min-width:0}
.home-mini-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-mini-item b{font-family:var(--mono);font-size:10px;color:var(--text3);white-space:nowrap}
.home-empty-line{padding:6px 8px;font-size:12px;color:var(--text3);background:var(--bg3);border-radius:6px}
.home-agenda{display:flex;flex-direction:column;gap:4px}
.home-agenda-row{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:6px;align-items:center;padding:5px 8px;background:var(--bg3);border-radius:6px;min-width:0;overflow:hidden}
.home-agenda-date{font-family:var(--mono);font-size:10px;color:var(--text3);white-space:nowrap}
.home-agenda-body{display:flex;align-items:center;gap:5px;min-width:0}.home-agenda-title{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.home-agenda-when{font-family:var(--mono);font-size:10px;opacity:.8;white-space:nowrap}
.home-section-title{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.7px;margin:18px 0 8px}
.home-next-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:14px}
.home-upcoming{display:flex;flex-direction:column;gap:6px}
.home-upcoming-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg3);border-radius:var(--radius);font-size:12px}
.home-upcoming-date{font-family:var(--mono);color:var(--text3);width:52px;flex-shrink:0}
.home-upcoming-body{flex:1;min-width:0}
.home-tasks-preview{display:flex;flex-direction:column;gap:4px}
.home-task-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg3);border-radius:var(--radius);font-size:12px;cursor:pointer}
.home-task-item:hover{background:var(--bg4)}
.home-task-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.home-task-label{flex:1;color:var(--text)}
.home-task-prio{font-size:10px;padding:1px 5px;border-radius:8px;font-weight:600}
.evento-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:8px;display:flex;gap:14px;align-items:flex-start;cursor:pointer;transition:background var(--tr)}
.evento-card:hover{background:var(--bg3)}
.evento-date-block{min-width:44px;text-align:center;background:var(--bg3);border-radius:var(--radius);padding:6px 4px;flex-shrink:0}
.evento-date-day{font-size:20px;font-weight:700;color:var(--text);line-height:1;font-family:var(--mono)}
.evento-date-mon{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.evento-body{flex:1;min-width:0}
.evento-titulo{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px}
.evento-hora{font-size:11px;color:var(--accent);font-family:var(--mono);margin-bottom:3px}
.evento-desc{font-size:12px;color:var(--text2);white-space:pre-wrap;line-height:1.5}
.eventos-month-header{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.7px;padding:12px 2px 6px;border-bottom:1px solid var(--border);margin-bottom:8px}
.event-color-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.event-color-swatch{width:26px;height:26px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:transform var(--tr),border-color var(--tr)}
.event-color-swatch:hover{transform:translateY(-1px)}
.event-color-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg2)}
.event-color-custom{width:36px;height:32px;border:none;border-radius:8px;cursor:pointer;background:none;padding:0}
/* Tarefas */
#tarefas-list{display:flex;gap:14px;align-items:flex-start}
.cat-section{break-inside:avoid;margin-bottom:14px;width:100%}
.tarefas-col{display:flex;flex-direction:column;gap:14px;flex:1;min-width:0}
.cat-section.dragging{opacity:.4}
.cat-section.drag-over{outline:2px dashed var(--accent);outline-offset:3px;border-radius:var(--radius-lg)}
.cat-drag-handle{cursor:grab;user-select:none}
.cat-drag-handle:active{cursor:grabbing}
.cat-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:4px;cursor:pointer;user-select:none;transition:background var(--tr)}
.cat-header:hover{background:var(--bg3)}
.cat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.cat-name{font-size:14px;font-weight:600;color:var(--text);flex:1}
.cat-count{font-size:11px;color:var(--text3)}
.cat-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:16px;padding:0 2px;margin-left:4px}
.cat-del:hover{color:var(--red)}
.tarefa-item{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;background:var(--bg2);border-left:3px solid var(--border2);border-bottom:1px solid var(--border);transition:background var(--tr)}
.tarefa-item:last-child{border-bottom:none;border-radius:0 0 var(--radius) var(--radius)}
.tarefa-item:hover{background:var(--bg3)}
.tarefa-item.done{opacity:.5}
.tarefa-check{width:18px;height:18px;border-radius:4px;border:2px solid var(--border2);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-top:1px;transition:all var(--tr)}
.tarefa-check.checked{background:var(--green);border-color:var(--green)}
.tarefa-check svg{display:none;width:11px;height:11px;color:#fff}
.tarefa-check.checked svg{display:block}
.tarefa-body{flex:1;min-width:0;cursor:pointer}
.tarefa-titulo{font-size:13px;font-weight:500;color:var(--text)}
.tarefa-item.done .tarefa-titulo{text-decoration:line-through;color:var(--text3)}
.tarefa-meta{display:flex;gap:8px;margin-top:3px;flex-wrap:wrap}
.tarefa-prio{font-size:10px;padding:1px 6px;border-radius:10px;font-weight:600;cursor:pointer;transition:opacity var(--tr)}
.tarefa-prio:hover{opacity:.7}
.prio-popup{background:var(--bg4);border:1px solid var(--border2);border-radius:var(--radius);box-shadow:0 4px 16px rgba(0,0,0,.3);overflow:hidden;min-width:90px}
.prio-popup-item{padding:7px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity var(--tr)}
.prio-popup-item:hover{opacity:.75}
.prio-popup-item.active{outline:2px solid currentColor;outline-offset:-2px}
.prio-alta{background:rgba(242,95,92,.15);color:var(--red)}
.prio-media{background:rgba(245,166,35,.12);color:var(--amber)}
.prio-baixa{background:rgba(62,207,142,.10);color:var(--green)}
.tarefa-del-btn{flex-shrink:0;background:none;border:none;cursor:pointer;padding:3px;color:var(--text3);opacity:0;transition:opacity var(--tr),color var(--tr);border-radius:4px;display:flex;align-items:center;margin-top:1px}
.tarefa-del-btn svg{width:14px;height:14px}
.tarefa-item:hover .tarefa-del-btn{opacity:1}
.tarefa-del-btn:hover{color:var(--red);background:rgba(242,95,92,.1)}
.tarefa-prazo.overdue{color:var(--red)}
.tarefa-notas{font-size:11px;color:var(--text2);margin-top:4px;line-height:1.4}
.add-tarefa-row{padding:8px 14px;border-left:3px solid var(--border2);border-bottom:1px solid var(--border);cursor:pointer;font-size:12px;color:var(--text3);transition:color var(--tr)}
.add-tarefa-row:hover{color:var(--accent)}
.quick-add-wrap{padding:8px 10px;border-left:3px solid var(--accent-border);border-bottom:1px solid var(--border);background:var(--bg3);display:flex;gap:8px;align-items:center}
.quick-add-input{flex:1;background:var(--bg2);border:1px solid var(--accent-border);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:13px;padding:6px 10px;outline:none}
.quick-add-prio{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:12px;padding:6px 8px;cursor:pointer}
.quick-add-hint{font-size:10px;color:var(--text3);white-space:nowrap}
.cat-empty{padding:12px 14px;font-size:12px;color:var(--text3);border-left:3px solid var(--border2)}
/* Spotify Widget */
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:8px;align-items:start}
.ex-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;cursor:pointer;transition:background var(--tr),border-color var(--tr);position:relative}
.ex-card:hover{background:var(--bg3);border-color:var(--border2)}
.ex-card-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.ex-grupo-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:8px;white-space:nowrap;flex-shrink:0}
.ex-nome{font-size:13px;font-weight:600;color:var(--text);font-family:var(--font);flex:1}
.ex-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),1fr));gap:6px}
.ex-stat{background:var(--bg3);border-radius:var(--radius);padding:7px 8px;text-align:center}
.ex-stat-val{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--text)}
.ex-stat-lbl{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;font-family:var(--font)}
.ex-obs{font-size:11px;color:var(--text3);margin-top:8px;font-family:var(--font)}
.ex-group-header{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.7px;padding:14px 2px 8px;border-bottom:1px solid var(--border);margin-bottom:10px;grid-column:1/-1}
/* Treino atual */
.ficha-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:12px}
.ficha-title{font-size:15px;font-weight:600;font-family:var(--font);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.sessao-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;font-family:var(--font)}
.sessao-check{width:18px;height:18px;border-radius:4px;border:2px solid var(--border2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--tr)}
.sessao-check.done{background:var(--green);border-color:var(--green)}
/* Global search overlay */
.global-search-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding-top:60px;backdrop-filter:blur(4px)}
.global-search-box{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);width:640px;max-width:94vw;box-shadow:0 24px 64px rgba(0,0,0,.5);overflow:hidden;display:flex;flex-direction:column;max-height:80vh}
.global-search-header{display:flex;align-items:center;gap:10px;padding:14px 18px 0;border-bottom:1px solid var(--border)}
.global-search-header svg{width:16px;height:16px;color:var(--text3);flex-shrink:0}
.global-search-input{flex:1;background:transparent;border:none;padding:2px 0 14px;font-size:15px;color:var(--text);font-family:var(--font);outline:none}
.gs-tabs{display:flex;gap:2px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--bg2)}
.gs-tab{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;font-family:var(--font);color:var(--text3);background:none;border:none;transition:all var(--tr);display:flex;align-items:center;gap:5px}
.gs-tab:hover{background:var(--bg3);color:var(--text)}
.gs-tab.active{background:var(--accent);color:#fff}
.gs-tab-count{font-size:9px;background:rgba(255,255,255,.25);border-radius:6px;padding:1px 5px;font-weight:700}
.gs-tab.active .gs-tab-count{background:rgba(255,255,255,.3)}
.gs-tab-count-dim{font-size:9px;background:var(--bg4);border-radius:6px;padding:1px 5px;font-weight:600;color:var(--text3)}
.global-search-results{flex:1;overflow-y:auto;min-height:0}
.gs-section-header{padding:8px 18px 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);font-family:var(--font);background:var(--bg3);border-bottom:1px solid var(--border);border-top:1px solid var(--border);position:sticky;top:0;z-index:1}
.gs-result{display:flex;align-items:center;gap:12px;padding:10px 18px;cursor:pointer;transition:background var(--tr);border-bottom:1px solid var(--border)}
.gs-result:hover,.gs-result.selected{background:var(--bg3)}
.gs-result-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px}
.gs-result-body{flex:1;min-width:0}
.gs-result-title{font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-result-title mark{background:rgba(79,142,247,.25);color:var(--accent);border-radius:2px;padding:0 1px}
.gs-result-sub{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-result-tag{font-size:10px;padding:2px 7px;border-radius:8px;background:var(--bg4);color:var(--text3);flex-shrink:0;font-family:var(--mono)}
.gs-empty{padding:28px 20px;text-align:center;color:var(--text3);font-size:13px;font-family:var(--font)}
.gs-footer{padding:8px 18px;border-top:1px solid var(--border);font-size:10px;color:var(--text3);font-family:var(--font);display:flex;gap:14px;background:var(--bg3)}
.gs-hint{display:flex;align-items:center;gap:4px}
.gs-kbd{background:var(--bg4);border:1px solid var(--border2);border-radius:3px;padding:1px 5px;font-family:var(--mono);font-size:9px}
/* Keyboard shortcut toast */
.kb-hint{position:fixed;bottom:20px;right:20px;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:12px 16px;font-size:12px;color:var(--text2);font-family:var(--font);z-index:5000;box-shadow:0 4px 20px rgba(0,0,0,.3);display:none;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center}
.kb-hint.show{display:grid}
.kb-key{background:var(--bg4);border:1px solid var(--border2);border-radius:4px;padding:1px 6px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text)}
/* Notification badge */
.notif-allowed{color:var(--green)}
@media print{
  .sidebar,.topbar-actions,.toolbar,.edit-hint,.month-chevron,.actions-cell,.btn-icon,.quick-add-row,#next-shift-wrap,#upcoming-shifts-wrap,.kpis{display:none!important}
  .main{margin-left:0!important;padding:10px!important}
  body{background:#fff!important;color:#000!important}
  .month-header{background:#f5f5f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  table{font-size:11px}.table-wrap{border:1px solid #ccc}
  thead th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .page{display:block!important}
  #page-resumo,#page-calendario,#page-tarefas{display:none!important}

}

/* ── Utility classes ── */
.treino-inp::-webkit-outer-spin-button,.treino-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.treino-inp[type=number]{-moz-appearance:textfield;appearance:textfield}
.treino-inp:focus{border-color:var(--accent)!important;box-shadow:0 0 0 2px rgba(79,142,247,.2)}
.u-font{font-family:var(--font)}.u-mono{font-family:var(--mono)}.u-text3{color:var(--text3)}.u-text2{color:var(--text2)}.u-accent{color:var(--accent)}.u-red{color:var(--red)}.u-green{color:var(--green)}.u-amber{color:var(--amber)}.u-semi{font-weight:600}.u-bold{font-weight:700}.u-flex-center{display:flex;align-items:center}.u-flex-between{display:flex;align-items:center;justify-content:space-between}.u-gap-6{gap:6px}.u-gap-8{gap:8px}.u-mb-8{margin-bottom:8px}.u-mb-12{margin-bottom:12px}.u-mb-16{margin-bottom:16px}.u-f10{font-size:10px}.u-f11{font-size:11px}.u-f12{font-size:12px}.u-f13{font-size:13px}.u-hidden{display:none!important}.u-flex-1{flex:1}.u-min0{flex:1;min-width:0}.u-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u-lbl{font-family:var(--font);font-size:12px;color:var(--text3);display:block;margin-bottom:4px}.u-lbl-sm{font-family:var(--font);font-size:11px;color:var(--text3)}.u-section-ttl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);font-family:var(--font)}.u-icon-sm{width:12px;height:12px;flex-shrink:0}.u-icon-md{width:16px;height:16px;flex-shrink:0}.u-icon-lg{width:20px;height:20px;flex-shrink:0}.u-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px}

/* ── Toast types ── */
.toast-error{background:var(--red)!important;color:#fff!important}
.toast-success{background:var(--green)!important;color:#fff!important}

/* ── Accessibility: focus-visible ── */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
:focus:not(:focus-visible){outline:none}
.modal-overlay:focus{outline:none}
.pin-key:focus-visible,.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.skip-link{position:absolute;top:-100px;left:8px;background:var(--accent);color:#fff;padding:8px 16px;border-radius:var(--radius);font-family:var(--font);font-size:13px;font-weight:600;z-index:10000;transition:top .2s}
.skip-link:focus{top:8px}

/* ── Subnavs: desktop nested inside sidebar; mobile strip above bottom bar ── */
#subnavs-container{display:none}
.subnav-strip{display:none;flex-direction:column;gap:3px;margin:-1px 0 7px 26px;padding:4px 0 4px 10px;border-left:1px solid var(--border2)}
.subnav-strip.open{display:flex}
.subnav-strip .fin-sub{font-size:12px;padding:7px 10px;justify-content:flex-start;width:calc(100% - 8px);min-width:0;white-space:nowrap;border-radius:var(--radius);margin:0;color:var(--text3)}
.subnav-strip .fin-sub:hover{background:var(--bg3);color:var(--text)}
.subnav-strip .fin-sub.active{background:var(--accent-bg);color:var(--accent)}
#mat-subnav-folders{display:flex;flex-direction:column;gap:3px}
/* ══════════════════════════════════════════
   MOBILE ≤768px — sidebar vira bottom nav
══════════════════════════════════════════ */
@media(max-width:768px){

  /* ── Sidebar → bottom bar ── */
  .sidebar{
    position:fixed!important;
    bottom:0;left:0;right:0;top:auto!important;
    width:100%!important;height:60px!important;
    flex-direction:row!important;padding:0!important;
    border-right:none!important;border-top:1px solid var(--border)!important;
    z-index:200!important;overflow:hidden!important;
    visibility:visible!important;opacity:1!important;
    background:var(--bg2)!important;
  }
  /* Safe area padding for notch phones (iPhone etc) */
  @supports(padding-bottom: env(safe-area-inset-bottom)){
    .sidebar{
      height:calc(60px + env(safe-area-inset-bottom))!important;
      padding-bottom:env(safe-area-inset-bottom)!important;
    }
  }
  .logo,.sidebar-footer,.sidebar-user,.sync-status{display:none!important}
  .nav{
    flex-direction:row!important;padding:0!important;
    overflow-x:auto;scrollbar-width:none;
    gap:0!important;flex:1!important;align-items:stretch!important;
    height:60px!important;max-height:60px!important;
  }
  .nav::-webkit-scrollbar{display:none}
  .nav-item{
    flex-direction:column!important;gap:2px!important;
    height:60px!important;min-height:60px!important;padding:8px 4px 6px!important;
    font-size:9px!important;border-radius:0!important;
    flex:1!important;justify-content:center!important;
    min-width:44px!important;max-width:80px!important;
    border-bottom:3px solid transparent!important;
  }
  .nav-item.active{border-bottom-color:var(--accent)!important;background:var(--accent-bg)!important}
  .nav-item span{
    display:block!important;font-size:9px!important;text-align:center!important;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:64px!important;
    color:inherit!important;
  }
  .nav-item svg{width:20px!important;height:20px!important;flex-shrink:0}

  /* ── Subnavs → fixed strip above bottom bar ── */
  #subnavs-container{
    position:fixed!important;
    bottom:calc(var(--mobile-nav-h, 60px) + env(safe-area-inset-bottom))!important;left:0!important;right:0!important;top:auto!important;
    z-index:199!important;
    width:100%!important;
    display:block!important;
  }
  .subnav-strip{
    display:none!important;
    flex-direction:row!important;
    margin:0!important;
    padding:6px 10px!important;
    background:var(--bg3)!important;
    border-top:1px solid var(--border)!important;
    border-left:none!important;
    border-right:none!important;
    min-width:0!important;width:100%!important;
    overflow-x:auto;scrollbar-width:none;
    gap:6px!important;
    flex-wrap:nowrap!important;
  }
  .subnav-strip::-webkit-scrollbar{display:none}
  .subnav-strip.open{display:flex!important}
  .subnav-strip .fin-sub{
    flex-direction:row!important;white-space:nowrap!important;
    font-size:12px!important;padding:7px 14px!important;
    min-width:auto!important;flex:none!important;width:auto!important;
    border-radius:var(--radius)!important;
    background:var(--bg4)!important;border:1px solid var(--border)!important;
  }
  .subnav-strip .fin-sub.active{
    background:var(--accent-bg)!important;color:var(--accent)!important;
    border-color:var(--accent-border)!important;
  }
  #mat-subnav-folders{display:flex;flex-direction:row;gap:6px;flex-shrink:0}

  /* ── Main content ── */
  .main{
    margin-left:0!important;
    margin-bottom:60px!important;
    padding:14px 12px!important;
    max-width:100vw!important;
    overflow-x:hidden!important;
    visibility:visible!important;opacity:1!important;
  }
  body:has(.subnav-strip.open) .main{margin-bottom:104px!important;padding-bottom:calc(var(--mobile-nav-h, 60px) + 108px)!important}

  /* ── Topbar ── */
  .topbar{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:14px}
  .topbar-left h2{font-size:18px}
  .topbar-actions{flex-wrap:wrap;gap:6px;width:100%}
  .topbar-actions .btn{flex:1;justify-content:center;min-width:0;font-size:12px;padding:8px 10px}

  /* ── KPIs ── */
  .kpi{padding:10px 12px}
  .kpi-val{font-size:18px}
  .kpi-breakdown{max-height:80px}

  /* ── Toolbar & filters ── */
  .toolbar{flex-wrap:wrap;gap:6px}
  .filter-select,.search-input{font-size:14px}
  .search-wrap{flex:1;min-width:0;margin-left:0}
  .search-input{width:100%}
  .search-input:focus{width:100%}

  /* ── Tables ── */
  .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:560px}
  thead th{font-size:9px;padding:7px 6px;white-space:nowrap}
  tbody td{font-size:12px}
  .cell-view{font-size:12px;padding:7px 6px}
  .obs-txt{max-width:90px}

  /* ── Modals → bottom sheet ── */
  .modal-overlay{padding:0!important;align-items:flex-end!important}
  .modal{
    max-width:100vw!important;width:100%!important;
    margin:0!important;
    border-radius:var(--radius-xl) var(--radius-xl) 0 0!important;
    max-height:90dvh!important;overflow-y:auto!important;
    animation:slideUpMobile .22s ease!important;
  }
  @keyframes slideUpMobile{from{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}
  .form-grid{grid-template-columns:1fr!important}
  .modal-actions{flex-direction:column}
  .modal-actions .btn{width:100%}

  /* ── Home ── */
  .home-grid{grid-template-columns:1fr}
  .home-section-title{font-size:10px;margin:14px 0 6px}

  /* ── Calendar ── */
  .chart-area{height:180px}
  .cal-event{font-size:9px;padding:1px 3px}
  .cal-day{min-height:48px;padding:2px}
  .cal-day-num{font-size:10px}

  /* ── Notes ── */
  .notes-columns{grid-template-columns:1fr}
  .notes-postit-grid{flex-direction:column}
  .notes-postit{width:100%!important;resize:vertical}
  .notes-editor-col{height:260px}
  .notes-editor-toolbar{flex-wrap:wrap}

  /* ── Finanças ── */
  .resumo-grid{grid-template-columns:1fr}
  .ex-grid{grid-template-columns:1fr!important}
  .fin-tabs{overflow-x:auto;scrollbar-width:none}
  .fin-tabs::-webkit-scrollbar{display:none}

  /* ── Next shift ── */
  .next-shift,.next-shift-red{flex-direction:column;gap:10px;padding:12px}
  .ns-right{flex-direction:row;justify-content:space-between;width:100%}

  /* ── PIN ── */
  .pin-card{padding:28px 18px}
  .pin-keypad{gap:10px;max-width:200px}
  .pin-key{width:60px;height:60px;font-size:20px}

  /* ── Global search ── */
  .global-search-box{max-width:100vw;margin:0;border-radius:0 0 var(--radius-xl) var(--radius-xl);max-height:70dvh}
  .global-search-overlay{padding-top:env(safe-area-inset-top,0px);align-items:flex-start}

  /* ── Toast: posição lateral (bottom é sobrescrito pela regra calc() mais abaixo) ── */
  .toast{right:12px;left:12px;text-align:center;font-size:12px}

  /* ── Setup banner ── */
  .setup-banner{flex-direction:column;gap:8px;padding:12px}

  /* ── Month header pills wrap ── */
  .month-left{flex-wrap:wrap}
  .month-pills{flex-wrap:wrap}

  /* ── Topbar refinements ── */
  .topbar-left h2{font-size:17px;letter-spacing:-.4px}
  .topbar-left p{font-size:12px}
  #page-calendario .topbar-actions{justify-content:flex-start}

  /* ── KPIs ── */
  .kpis{grid-template-columns:1fr 1fr!important;gap:8px}
  .kpi-val{font-size:17px}
  .kpi-icon{width:26px;height:26px}
  .kpi-icon svg{width:13px;height:13px}

  /* ── Next shift mobile ── */
  .ns-cd-num{font-size:18px}
  .ns-main-line{font-size:15px}
  .ns-detail-line{font-size:11px}
  .ns-countdown-num{font-size:18px}

  /* ── Upcoming shifts ── */
  .upcoming-item{gap:7px;padding:8px 10px}
  .upcoming-date{font-size:11px}
  .upcoming-time{font-size:11px}
  .upcoming-local{font-size:11px}

  /* ── Month sections ── */
  .month-header{padding:8px 10px}
  .month-name{font-size:13px}
  .pill{font-size:10px;padding:2px 6px}
  .month-chevron{width:16px;height:16px}

  /* ── Resumo / home cards ── */
  .resumo-grid{grid-template-columns:1fr}
  .resumo-card{padding:14px}
  .home-grid{grid-template-columns:1fr}
  .home-card{padding:14px 16px}

  /* ── Financial flow banner ── */
  .flow-banner{padding:14px 16px}
  .flow-steps{flex-direction:column;align-items:flex-start;gap:8px}
  .flow-step{width:100%;padding:0 8px}
  .flow-step:not(:last-child)::after{content:'↓';position:static;transform:none;display:block;text-align:center;width:100%;margin:2px 0}
  .flow-step-val{font-size:16px}
  .flow-prog{padding:0 8px;min-width:100%;width:100%}

  /* ── Calendar ── */
  .cal-grid{gap:1px}
  .cal-day{min-height:42px;padding:2px 2px}
  .cal-day-num{font-size:9px;width:16px;height:16px}
  .cal-event{font-size:8px}
  .week-board{grid-template-columns:1fr;gap:8px}
  .week-day{min-height:0;padding:12px}
  .week-day-head{margin-bottom:7px}
  .week-event{padding:8px 9px}

  /* ── Tables ── */
  table{min-width:480px}
  thead th{font-size:9px;padding:6px 5px;letter-spacing:.3px}
  tbody td{font-size:11px}
  .cell-view{font-size:11px;padding:6px 5px;min-height:30px}
  .obs-txt{max-width:70px;font-size:11px}
  .data-txt,.time-txt{font-size:11px}
  .tipo{font-size:10px;padding:1px 5px}

  /* ── Chart ── */
  .chart-bars{gap:4px;min-height:100px}
  .chart-col{min-width:32px}
  .chart-val{font-size:9px}
  .chart-label{font-size:9px}
  .chart-title{font-size:12px}
  .chart-toggle{flex-wrap:wrap;gap:4px}
  .chart-tab{font-size:10px;padding:3px 10px}

  /* ── Pin screen ── */
  .pin-card{padding:24px 16px;border-radius:var(--radius-lg)}
  .pin-logo{width:90px;height:90px}
  .pin-title{font-size:18px}
  .user-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .user-btn{padding:10px 6px}
  .user-avatar{width:30px;height:30px;font-size:13px}
  .user-name{font-size:11px}

  /* ── Tarefas ── */
  #tarefas-list{flex-direction:column}
  .tarefa-item{padding:8px 10px;gap:8px}
  .cat-header{padding:8px 10px}
  .cat-name{font-size:13px}

  /* ── Gastos grid ── */
  .gastos-grid{grid-template-columns:1fr!important;gap:10px}
  .gf-summary{gap:12px;padding:10px 12px}
  .gs-val{font-size:13px}

  /* ── Eventos ── */
  .evento-card{padding:10px 12px;gap:10px}
  .evento-date-day{font-size:17px}
  .evento-titulo{font-size:12px}

  /* ── Type tabs (finanças) ── */
  .type-tabs{border-radius:var(--radius)}
  .type-tab{font-size:12px;padding:6px}

  /* ── Resumo cards detail ── */
  .resumo-stat-label{font-size:11px}
  .resumo-stat-val{font-size:11px}

  /* ── Modal safe area ── */
  .modal{padding-bottom:26px}

  /* ── Active states (better tap feedback) ── */
  .btn:active,.nav-item:active,.modal-close:active,.btn-icon:active{opacity:.7}
  .pin-key:active{background:var(--accent-bg)!important;transform:scale(.92)!important}
}

/* ── Touch targets universais ── */
@media(hover:none)and(pointer:coarse){
  .btn,.nav-item,.pin-key,.cal-day,.fin-sub{touch-action:manipulation}
  .btn{min-height:44px}
  .nav-item{min-height:44px}
  .pin-key{min-height:56px}
  .cal-day{-webkit-tap-highlight-color:rgba(79,142,247,.2)}
  .btn-icon{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}
  select,input[type=text],input[type=number],input[type=date],input[type=time],input[type=email],input[type=password],textarea{font-size:16px!important}
  .treino-inp{font-size:16px!important}
  .qa-input,.qa-select,.cell-input,.cell-select{font-size:16px!important}
  .filter-select,.global-search-input,.new-profile-form input,.tag-add-row input{font-size:16px!important}
  /* Prevent double-tap zoom on buttons */
  .btn,.nav-item,.pin-key,.btn-icon,.cat-header,.month-header,.home-card,.tarefa-check{touch-action:manipulation}
  /* Better tap targets for small elements */
  .tag-del{min-width:24px;min-height:24px;display:inline-flex;align-items:center;justify-content:center}
  .modal-close{min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}
  .sidebar-user-out{min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}
  /* Smooth scrolling on touch */
  .table-scroll,.fin-tabs,.nav,.chart-area,.modal,.pin-card{-webkit-overflow-scrolling:touch}
  /* Remove hover states that get "stuck" on touch */
  .month-header:hover,.kpi:hover,.resumo-card:hover,.home-card:hover{transform:none}
}
html{scroll-behavior:smooth}

/* ── High contrast ── */
@media(prefers-contrast:high){:root{--border:rgba(255,255,255,.4);--border2:rgba(255,255,255,.3);--text3:#aaa}.btn-ghost{border-width:2px}}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ── Post-it Notes Widget ── */
.notes-widget{margin-top:20px}
.notes-columns{display:grid;grid-template-columns:340px 1fr 1fr;gap:16px;align-items:start}
.notes-editor-col{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;position:relative;height:320px;min-height:180px}
.notes-editor-toolbar{display:flex;gap:2px;padding:8px 10px;border-bottom:1px solid var(--border);flex-wrap:wrap;background:var(--bg3);flex-shrink:0}
.notes-tool-btn{background:none;border:none;cursor:pointer;color:var(--text2);padding:3px 6px;border-radius:5px;font-size:12px;font-family:var(--font);line-height:1.4;transition:background var(--tr)}
.notes-tool-btn:hover{background:var(--bg4);color:var(--text)}
.notes-tool-btn.active{background:var(--accent);color:#fff}
.notes-tool-sep{width:1px;background:var(--border2);margin:2px 4px;align-self:stretch}
.notes-editor-area{flex:1;min-height:0;overflow-y:auto;padding:12px 14px 12px 28px;outline:none;font-family:var(--font);font-size:13px;color:var(--text);line-height:1.7;caret-color:var(--accent)}
.notes-editor-area:empty::before{content:attr(data-placeholder);color:var(--text3);pointer-events:none}
.notes-editor-area ul,.notes-editor-area ol,.notes-postit-body ul,.notes-postit-body ol{padding-left:20px;margin:4px 0}
.notes-editor-area li,.notes-postit-body li{margin:2px 0}
.notes-editor-footer{padding:8px 12px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}
.notes-color-picker{display:flex;gap:5px;align-items:center}
.notes-color-dot{width:16px;height:16px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform var(--tr)}
.notes-color-dot:hover,.notes-color-dot.sel{transform:scale(1.2);border-color:var(--text)}
.notes-columns{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}
.notes-postit-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.notes-postit-col{display:flex;flex-direction:column;gap:10px}
.notes-postit.drag-over{outline:2px dashed rgba(255,255,255,.4);outline-offset:2px}
.notes-postit.dragging{opacity:.4;cursor:grabbing}
.notes-postit{border-radius:var(--radius-lg);padding:0;position:relative;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:box-shadow var(--tr);cursor:default;resize:both;overflow:hidden;min-width:180px;min-height:110px;width:220px;box-sizing:border-box;display:flex;flex-direction:column}
.notes-postit:hover{box-shadow:0 6px 20px rgba(0,0,0,.2)}
.notes-postit-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 6px;opacity:.7;flex-shrink:0}
.notes-postit-date{font-size:10px;font-family:var(--mono)}
.notes-postit-del{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;opacity:.5;transition:opacity var(--tr)}
.notes-postit-del:hover{opacity:1}
.notes-postit-body{font-size:12px;line-height:1.6;word-break:break-word;overflow-wrap:anywhere;flex:1;min-height:0;overflow-y:auto;padding:0 12px}
.notes-postit-body ul{padding-left:18px;margin:4px 0}
.notes-postit-body li{margin:2px 0}
.notes-color-select-row{display:flex;gap:6px;align-items:center;margin-bottom:10px}
.notes-color-label{font-size:11px;color:var(--text3);font-family:var(--font)}
@media(max-width:900px){.notes-columns{grid-template-columns:1fr}.notes-postit-grid{flex-direction:column}.notes-postit{width:100%!important}}
.notes-resize-handle{position:absolute;bottom:0;left:0;width:18px;height:18px;cursor:sw-resize;z-index:10;display:flex;align-items:flex-end;justify-content:flex-start;padding:3px;opacity:.35;transition:opacity var(--tr)}
.notes-resize-handle:hover{opacity:.9}
.notes-resize-handle svg{width:10px;height:10px;color:var(--text2)}

/* ══════════════ [MOBILE RESPONSIVE PATCH] ══════════════
   Ajustes adicionados para melhorar uso em celulares e tablets sem alterar a lógica do app.
*/
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-bottom:88px}
body{overflow-x:hidden}
img,svg,canvas,video{max-width:100%}
.table-scroll,.resumo-tbl-wrap,.calendar-wrap,.cards-list,.finance-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.modal-backdrop{padding:14px}.modal{max-width:min(96vw,560px);max-height:88dvh;padding:20px}

@media (max-width:1100px){
  .main{padding:24px 20px;max-width:none}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  [style*="grid-template-columns:repeat(5,1fr)"],[style*="grid-template-columns: repeat(5,1fr)"],[style*="grid-template-columns:repeat(4,1fr)"],[style*="grid-template-columns: repeat(4,1fr)"],[style*="grid-template-columns:1fr 1fr 1fr"],[style*="grid-template-columns: 1fr 1fr 1fr"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .topbar{gap:14px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}
}

@media (max-width:768px){
  :root{--mobile-nav-h:72px}
  body{font-size:14px;padding-bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom));touch-action:manipulation}
  button,input,select,textarea{font-size:16px}
  .field input,.field select,.field textarea,.cell-input,.cell-select,.qa-input,.qa-select,.filter-select,.search-input,.global-search-input,.new-profile-form input,.tag-add-row input,.rates-tbl input,.bonus-row input,.quick-add-input{font-size:16px!important;min-height:42px}
  .sidebar{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;height:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom))!important;padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important;border-right:0!important;border-top:1px solid var(--border)!important;display:flex!important;z-index:1000!important;background:rgba(18,23,34,.94)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  body.light .sidebar{background:rgba(255,255,255,.94)!important}
  .logo,.sidebar-footer,.theme-toggle,.sidebar-user{display:none!important}
  .nav{display:grid!important;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;overflow-x:auto;overflow-y:hidden;padding:0!important;scrollbar-width:none;align-items:stretch}
  .nav::-webkit-scrollbar{display:none}
  .nav-item{min-width:64px;height:56px;margin:0!important;padding:7px 6px!important;border-radius:14px!important;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:10px!important;text-align:center;line-height:1.1;white-space:normal;color:var(--text3)}
  .nav-item svg{width:20px!important;height:20px!important}.nav-item span{display:block!important;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .nav-item.active{background:var(--accent-bg)!important;color:var(--accent)!important}
  .main{margin-left:0!important;padding:18px 14px calc(var(--mobile-nav-h) + 22px)!important;max-width:none!important;width:100%!important}
  .topbar{flex-direction:column;align-items:stretch;margin-bottom:16px;gap:12px}.topbar-left h2{font-size:22px}.topbar-left p{font-size:13px}
  .topbar-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;justify-content:stretch}.topbar-actions>*{width:100%;justify-content:center}.topbar-actions .filter-select{min-width:0}
  .toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.toolbar>*{width:100%;min-width:0}.search-wrap{margin-left:0}.search-input,.search-input:focus{width:100%!important}
  .btn{min-height:42px;padding:10px 12px;justify-content:center}.btn-sm{min-height:38px;padding:8px 10px}
  .kpis{grid-template-columns:1fr!important;gap:10px}.kpi{padding:14px}.kpi-val{font-size:21px}
  [style*="grid-template-columns"]{grid-template-columns:1fr!important}
  .next-shift,.next-shift-red{flex-direction:column;align-items:stretch;padding:14px;gap:10px}.ns-right{margin-left:0;width:100%;justify-content:space-between}.ns-val,.ns-val-red{text-align:left}.ns-cd-wrap{justify-content:center}
  .month-header{align-items:flex-start}.month-left{flex-direction:column;align-items:flex-start;gap:6px}.month-pills{width:100%}
  .modal-overlay,.modal-backdrop{z-index:1200!important}
  .modal{border-radius:18px;padding:18px;max-width:calc(100vw - 20px);max-height:calc(100dvh - 28px)}.modal-title{font-size:18px}.form-grid{grid-template-columns:1fr!important}
  .chart-wrap,.chart-card{overflow:hidden}.chart-area{height:240px!important;min-height:220px}.global-search-box{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important}
  .fin-tab{flex:1 1 calc(50% - 4px);min-height:40px}.resumo-tbl-wrap table,.table-scroll table{font-size:12px}
  .table-scroll table,.finance-table-wrap table,.resumo-tbl-wrap table{min-width:640px}
  .rates-tbl{min-width:420px}
  .preview-box,.tag-add-row,.bonus-row,.quick-add-wrap{flex-wrap:wrap}
  .field,.field input,.field select,.field textarea,.modal-header,.modal-actions,.home-card,.resumo-card,.tarefa-item,.evento-card{min-width:0}
  .home-card-row,.resumo-stat,.evento-card,.tarefa-item{gap:8px}
  .home-card-row-label,.home-card-row-val,.resumo-stat-label,.resumo-stat-val,.evento-titulo,.cat-name{min-width:0;overflow-wrap:anywhere}
}

@media (max-width:430px){
  .main{padding-left:10px!important;padding-right:10px!important}.topbar-actions,.toolbar{grid-template-columns:1fr}.nav{grid-auto-columns:minmax(58px,1fr)}.nav-item{min-width:58px;font-size:9px!important}.nav-item span{max-width:58px}.kpi{border-radius:14px}.modal-backdrop{padding:8px}.modal{max-width:calc(100vw - 12px)}
}

/* ══════════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATION v2 — mai/2026
   Consolida variáveis, corrige conflitos entre blocos anteriores e
   adiciona melhorias de UX mobile sem afetar desktop.
══════════════════════════════════════════════════════════════════ */

/* ── Variáveis de layout mobile (fonte única de verdade) ── */
:root{
  --mobile-nav-h:72px;
  --subnav-h:44px;
}

/* ════════════════════════════════════════
   TELAS MUITO PEQUENAS ≤360px
   Esconde labels da nav para caber tudo
════════════════════════════════════════ */
@media(max-width:360px){
  .nav-item span{display:none!important}
  .nav-item{padding:10px 2px!important;gap:0!important;min-width:44px!important}
  .nav-item svg{width:22px!important;height:22px!important}
  .main{padding-left:8px!important;padding-right:8px!important}
  .topbar-left h2{font-size:16px!important}
}

/* ════════════════════════════════════════
   MOBILE ≤768px — Correções e melhorias
════════════════════════════════════════ */
@media(max-width:768px){

  /* ── Toast: corrige posição — estava em 70px mas nav é 72px ── */
  .toast{
    bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom, 0px) + 10px)!important;
    right:12px!important;
    left:12px!important;
    text-align:center!important;
    font-size:12px!important;
    max-width:calc(100vw - 24px)!important;
  }

  /* ── KPIs: 2 colunas no mobile (consistência entre os blocos anteriores) ── */
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .kpi-val{font-size:18px!important}

  /* ── Edit hint: inútil no mobile (instrução de mouse/teclado) ── */
  .edit-hint{display:none!important}

  /* ── Setup banner: mais compacto ── */
  .setup-banner{padding:10px 12px!important;gap:10px!important}
  .setup-banner-icon{width:28px!important;height:28px!important;flex-shrink:0!important}
  .setup-banner h4{font-size:12px!important}
  .setup-banner p{font-size:11px!important}

  /* ── Calendário: células e eventos legíveis ── */
  .cal-day{min-height:54px!important;padding:3px 2px!important}
  .cal-day-num{font-size:11px!important;width:18px!important;height:18px!important}
  .cal-event{font-size:10px!important;padding:2px 4px!important}

  /* ── Calendário topbar: remover "Google Agenda" no mobile ── */
  #page-calendario button[onclick="openGcalTutorial()"]{display:none!important}

  /* ── Plantões topbar: esconder exportações secundárias no mobile ── */
  #page-plantoes button[onclick="exportCSV()"],
  #page-plantoes button[onclick="exportExcel()"],
  #page-plantoes button[onclick="exportPDF()"]{display:none!important}

  /* ── Week view: empilhar colunas ── */
  .week-board{grid-template-columns:1fr!important;gap:8px!important}
  .week-day{min-height:0!important;padding:10px 12px!important}
  .week-event{padding:8px 10px!important}
  .week-event-title{font-size:12px!important}

  /* ── Modais: bottom sheet com padding seguro ── */
  .modal{
    border-radius:20px 20px 0 0!important;
    padding:20px 16px calc(env(safe-area-inset-bottom, 0px) + 16px)!important;
    max-height:92dvh!important;
  }
  .modal-header{margin-bottom:14px!important}
  /* Ações do modal em linha (corrige regra anterior que usava column) */
  .modal-actions{
    position:sticky!important;
    bottom:0!important;
    background:var(--bg2)!important;
    padding:12px 0 0!important;
    margin-top:14px!important;
    border-top:1px solid var(--border)!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
  }
  .modal-actions .btn{flex:1!important;min-width:0!important;width:auto!important}

  /* ── Flashcards modal → bottom sheet ── */
  .fc-modal-overlay{align-items:flex-end!important;padding:0!important}
  .fc-modal-box{
    width:100%!important;
    max-width:100%!important;
    border-radius:20px 20px 0 0!important;
    padding:20px 16px calc(env(safe-area-inset-bottom, 0px) + 20px)!important;
    max-height:90dvh!important;
    overflow-y:auto!important;
  }
  .fc-modal-footer{
    position:sticky!important;
    bottom:0!important;
    background:var(--bg2)!important;
    padding:12px 0 0!important;
    margin-top:12px!important;
    border-top:1px solid var(--border)!important;
  }

  /* ── Notes editor: altura adaptativa ── */
  .notes-editor-col{height:min(260px,45dvh)!important;min-height:180px!important}
  .notes-editor-toolbar{overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none!important}
  .notes-editor-toolbar::-webkit-scrollbar{display:none}

  /* ── Cronômetro: posicionar acima da bottom nav ── */
  #cronometro-overlay{
    top:auto!important;
    bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom, 0px) + 10px)!important;
    right:12px!important;
    left:auto!important;
    min-width:180px!important;
    max-width:calc(100vw - 24px)!important;
  }

  /* ── Busca global: z-index sobre a nav ── */
  .global-search-overlay{z-index:1500!important}

  /* ── Treino: inputs com touch confortável (sem override de width — controlado pelo grid inline) ── */
  .treino-inp{padding:6px 4px!important;text-align:center!important;min-height:38px!important}
  .sessao-item{padding:10px 0!important;gap:12px!important}
  .ficha-title{font-size:14px!important}
  .ficha-card{padding:14px 12px!important}

  /* ── Prio popup: alvos de toque confortáveis ── */
  .prio-popup-item{padding:10px 16px!important;font-size:13px!important}

  /* ── Nav: texto ligeiramente maior (de 9px para 10px) ── */
  .nav-item{font-size:10px!important}
  .nav-item span{font-size:10px!important;max-width:72px!important}

  /* ── Subnav + conteúdo: padding correto usando variáveis ── */
  body:has(.subnav-strip.open) .main{
    padding-bottom:calc(var(--mobile-nav-h) + var(--subnav-h) + env(safe-area-inset-bottom, 0px) + 16px)!important;
    margin-bottom:calc(var(--mobile-nav-h) + var(--subnav-h) + env(safe-area-inset-bottom, 0px))!important;
  }
  body:has(.subnav-strip.open) .toast{
    bottom:calc(var(--mobile-nav-h) + var(--subnav-h) + env(safe-area-inset-bottom, 0px) + 10px)!important;
  }

  /* ── Tarefas: delete semi-visível no touch ── */
  .tarefa-del-btn{opacity:.6!important}
  .tarefa-check{width:22px!important;height:22px!important;border-radius:5px!important}

  /* ── Upcoming shifts: espaçamento consistente ── */
  .upcoming-item{padding:7px 12px!important;gap:8px!important}
}

/* ════════════════════════════════════════
   MOBILE PEQUENO ≤430px
════════════════════════════════════════ */
@media(max-width:430px){
  /* KPIs: 1 coluna em telas muito pequenas */
  .kpis{grid-template-columns:1fr!important}

  /* Calendário: células compactas */
  .cal-day{min-height:44px!important}
  .cal-day-num{font-size:10px!important;width:16px!important;height:16px!important}
  .cal-event{font-size:9px!important}

  /* Nav: itens ligeiramente menores */
  .nav{grid-auto-columns:minmax(52px,1fr)!important}
  .nav-item{min-width:52px!important;font-size:9px!important}
  .nav-item span{font-size:9px!important;max-width:60px!important}
}

/* ════════════════════════════════════════
   MATERIAIS: sidebar mobile compacta
════════════════════════════════════════ */
@media(max-width:640px){
  .matx-sidebar{max-height:190px!important;overflow-y:auto!important;overflow-x:hidden!important}
  .matx-tree-row{height:38px!important}
  .matx-home{padding:12px!important}
  .matx-home-stats{gap:8px!important;flex-wrap:wrap!important}
  .matx-stat{padding:10px 14px!important;min-width:60px!important}
  .matx-shell{gap:10px!important}
}
@media(max-width:480px){
  .matx-sidebar{max-height:160px!important}
  .matx-folder-tiles{grid-template-columns:repeat(2,1fr)!important}
  .matx-home-stats{gap:6px!important}
}

/* ════════════════════════════════════════
   TOUCH — pointer:coarse
   Garante alvos de toque confortáveis
════════════════════════════════════════ */
@media(hover:none)and(pointer:coarse){
  /* Botão delete de tarefa sempre semi-visível no touch */
  .tarefa-del-btn{opacity:.65!important}
  /* Checkbox de tarefa maior */
  .tarefa-check{width:22px!important;height:22px!important}
  /* Botões do cronômetro */
  #cronometro-overlay button{min-height:40px!important;min-width:40px!important}
  /* Flashcard: botões de revelar e avaliar com altura confortável */
  .fc-rating-btn,.fc-reveal-btn{min-height:48px!important}
}

/* ══════════════════════════════════════════════════════════════════
   FASE 2 — PLANTÕES CARDS · AGENDA CALENDÁRIO · MATERIAIS DRAWER
   mai/2026 — melhorias estruturais mobile sem quebrar desktop
══════════════════════════════════════════════════════════════════ */

/* ── mob-fim: span oculto no desktop, visível no mobile ── */
.mob-fim{display:none}

/* ════════════════════════════════════════
   PLANTÕES — CARD LAYOUT MOBILE
   Transforma a tabela em cards usando data-col.
   Desktop mantém tabela intacta.
════════════════════════════════════════ */
@media(max-width:768px){
  .mob-fim{display:inline;color:var(--text3)}

  /* Desativa scroll horizontal; vira flex de cards */
  #list .table-wrap{border:none!important;border-radius:0!important;background:transparent!important}
  #list .table-scroll{overflow:visible!important}
  #list table{display:block!important;min-width:0!important;width:100%!important}
  #list thead{display:none!important}
  #list tbody{display:flex!important;flex-direction:column!important;gap:10px!important}

  /* Cada linha de plantão vira um card */
  #list tbody tr:not(.quick-add-row):not(.total-row){
    display:grid!important;
    grid-template-columns:auto 1fr auto!important;
    grid-template-rows:auto auto auto auto!important;
    padding:12px 14px!important;
    background:var(--bg2)!important;
    border:1px solid var(--border)!important;
    border-left:3px solid var(--accent-border)!important;
    border-radius:var(--radius-lg)!important;
    gap:4px 10px!important;
    position:relative!important;
  }

  /* Posicionamento de cada célula no grid */
  #list tbody tr td[data-col="data"]{grid-row:1;grid-column:1;align-self:center}
  #list tbody tr td[data-col="dow"]{display:none!important}
  #list tbody tr td[data-col="ini"]{grid-row:1;grid-column:2;align-self:center}
  #list tbody tr td[data-col="fim"]{display:none!important}
  #list tbody tr td[data-col="dur"]{grid-row:1;grid-column:3;align-self:center;text-align:right}
  #list tbody tr td[data-col="local"]{grid-row:2;grid-column:1/-1}
  #list tbody tr td[data-col="tipo"]{grid-row:3;grid-column:1;align-self:center}
  #list tbody tr td[data-col="obs"]{grid-row:3;grid-column:2;min-width:0;align-self:center}
  #list tbody tr td[data-col="valor"]{grid-row:4;grid-column:1;align-self:center}
  #list tbody tr td[data-col="status"]{grid-row:4;grid-column:2;align-self:center}
  /* Ações: sem display aqui — vem depois com especificidade maior */
  #list tbody tr td[data-col="actions"]{grid-row:3/5;grid-column:3;align-self:center}

  /* Resetar estilos herdados da tabela — DEVE vir antes dos overrides */
  #list tbody tr:not(.quick-add-row):not(.total-row) td{
    display:block!important;overflow:visible!important;
    position:relative!important;min-height:0!important;
    border:none!important;
  }
  /* CORREÇÃO especificidade: actions td precisa de flex para layout dos botões.
     Especificidade 1,3,3 > 1,2,3 do reset acima — ambas com !important → mais específica vence */
  #list tbody tr:not(.quick-add-row):not(.total-row) td[data-col="actions"]{
    display:flex!important;align-items:center!important;
    justify-content:flex-end!important;gap:6px!important;
  }
  /* Células inline sem padding de tabela */
  #list tbody tr td .cell-view,
  #list tbody tr td .cell-ro{
    padding:2px 4px!important;min-height:0!important;white-space:normal!important;
  }
  #list tbody tr td .cell-view{min-height:32px!important}

  /* Local: fonte legível */
  #list tbody tr td[data-col="local"] .cell-view span{white-space:normal!important;font-weight:500}

  /* Obs: truncar com reticências; esconder se vazio */
  #list tbody tr td[data-col="obs"] .obs-txt{max-width:none!important;font-size:11px!important}
  #list tbody tr td[data-col="obs"] .obs-txt:empty{display:none}

  /* Ações: botões maiores, sempre visíveis */
  #list tbody tr .actions-cell{padding:0!important;justify-content:flex-end!important;gap:4px!important}
  #list tbody tr .btn-icon{
    width:36px!important;height:36px!important;opacity:1!important;
    border-radius:var(--radius)!important;
  }

  /* Total row: flex wrapping */
  #list tbody .total-row{
    display:flex!important;flex-wrap:wrap!important;
    gap:6px!important;padding:8px 12px!important;
    background:var(--bg3)!important;
    border:1px solid var(--border)!important;
    border-radius:var(--radius)!important;
  }
  #list tbody .total-row td{display:inline-flex!important;align-items:center!important;padding:0!important;border:none!important}
  /* Esconder células de colspan desnecessárias no total mobile */
  #list tbody .total-row td[colspan]{display:none!important}

  /* Quick add: esconder no mobile (usar botão "Novo plantão") */
  #list tbody .quick-add-row{display:none!important}

  /* Empty state */
  #list .empty{padding:32px 16px!important}

  /* edit-hint desktop: irrelevante no mobile (cards não têm clique de célula visível) */
  .edit-hint{display:none!important}
}

/* ── Polimento Fase 3: topbars mobile ── */
@media(max-width:768px){
  /* Calendário: esconder botão Google Agenda (secundário) */
  #page-calendario .topbar-actions [onclick*="openGcalTutorial"]{display:none!important}
  /* Calendário: tabs Mês/Semana ocupam linha inteira no grid 2-col */
  #page-calendario .topbar-actions>div:first-child{grid-column:1/-1!important}
}

/* ════════════════════════════════════════
   CALENDÁRIO — AGENDA MOBILE
   Strip de próximos compromissos (14 dias)
   Só aparece em mobile quando vista=mês
════════════════════════════════════════ */
#cal-agenda{margin-top:14px}
.cal-agenda-title{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;
  color:var(--text3);padding:0 2px 8px;
  border-bottom:1px solid var(--border);margin-bottom:10px;
}
.cal-agenda-empty{
  padding:20px;text-align:center;font-size:12px;color:var(--text3);
  background:var(--bg2);border:1px dashed var(--border2);border-radius:var(--radius-lg);
}
.cal-agenda-day{margin-bottom:12px}
.cal-agenda-day-hdr{
  display:flex;align-items:center;gap:8px;
  padding:5px 8px;border-radius:var(--radius);
  background:var(--bg3);margin-bottom:5px;
}
.cal-agenda-day-hdr.is-today{background:var(--accent-bg);border:1px solid var(--accent-border)}
.cal-agenda-dow{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;width:28px}
.cal-agenda-date{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text2)}
.cal-agenda-day-hdr.is-today .cal-agenda-dow,.cal-agenda-day-hdr.is-today .cal-agenda-date{color:var(--accent)}
.cal-agenda-badge{
  font-size:9px;font-weight:700;padding:1px 6px;border-radius:10px;
  background:var(--accent);color:#fff;letter-spacing:.3px;
}
.cal-agenda-items{display:flex;flex-direction:column;gap:5px}
.cal-agenda-item{
  display:flex;align-items:center;gap:8px;
  padding:9px 12px;border-radius:var(--radius);
  background:var(--bg2);border:1px solid var(--border);
  border-left:3px solid var(--text3);cursor:pointer;
  transition:background var(--tr);min-width:0;
}
.cal-agenda-item:hover{background:var(--bg3)}
.cal-ai-plantao{border-left-color:var(--accent)}
.cal-ai-evento{border-left-color:var(--amber)}
.cal-ai-tarefa{border-left-color:var(--green)}
.cal-ai-time{
  font-family:var(--mono);font-size:11px;color:var(--text3);
  white-space:nowrap;flex-shrink:0;min-width:52px;
}
.cal-ai-body{flex:1;display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.cal-ai-local{font-size:12px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.cal-ai-dur{font-family:var(--mono);font-size:10px;color:var(--text3);white-space:nowrap;flex-shrink:0}
.cal-ai-status{font-size:10px;color:var(--text3);white-space:nowrap;flex-shrink:0;margin-left:auto}

/* ════════════════════════════════════════
   MATERIAIS — DRAWER MOBILE
   Sidebar vira drawer fixo à esquerda
════════════════════════════════════════ */

/* Botão toggle: só aparece no mobile */
.matx-sidebar-toggle{display:none!important}
.matx-sidebar-backdrop{display:none}
.matx-sidebar-close{
  display:none;border:none;background:none;
  color:var(--text3);font-size:20px;line-height:1;
  cursor:pointer;padding:2px 6px;border-radius:5px;
  flex-shrink:0;transition:color var(--tr);
}
.matx-sidebar-close:hover{color:var(--text)}

@media(max-width:768px){
  /* Mostrar botão toggle no mobile */
  .matx-sidebar-toggle{display:inline-flex!important}
  .matx-sidebar-close{display:flex!important}

  /* Drawer fixo à esquerda, escondido por padrão */
  .matx-sidebar{
    position:fixed!important;
    top:0!important;
    left:-100%!important;
    height:calc(100svh - var(--mobile-nav-h) - env(safe-area-inset-bottom, 0px))!important;
    max-height:none!important;
    width:min(290px, 82vw)!important;
    z-index:800!important;
    transition:left .25s ease!important;
    border-radius:0!important;
    box-shadow:4px 0 24px rgba(0,0,0,.5)!important;
    overflow-y:auto!important;
    padding:16px 12px!important;
    border:none!important;
    border-right:1px solid var(--border)!important;
  }

  /* Drawer aberto */
  .matx-sidebar.sidebar-open{left:0!important}

  /* Backdrop */
  .matx-sidebar-backdrop{
    display:block;
    position:fixed;
    inset:0;
    bottom:var(--mobile-nav-h)!important;
    background:rgba(0,0,0,.55);
    z-index:799;
    backdrop-filter:blur(2px);
    opacity:0;
    pointer-events:none;
    transition:opacity .25s;
  }
  .matx-sidebar-backdrop.backdrop-open{
    opacity:1;
    pointer-events:auto;
  }

  /* Shell sem sidebar visível (1 coluna) */
  .matx-shell:not(.files-view){grid-template-columns:1fr!important}

  /* Árvore de pastas no drawer */
  .matx-sidebar .matx-tree-row{height:44px!important}
  .matx-sidebar .matx-pane-head{
    display:flex!important;align-items:center!important;
    justify-content:space-between!important;margin-bottom:12px!important;
    position:sticky;top:0;background:var(--bg2);z-index:1;padding-bottom:8px;
  }

  /* Botão toggle: ocupa linha inteira no toolgroup 2-col do mobile */
  .matx-toolbar .matx-toolgroup .matx-sidebar-toggle{
    grid-column:1/-1!important;justify-content:center!important;
    width:100%!important;
  }
}

/* ══════════════════════════════════════════════════════════════════
   FASE 4 — EXPORT DROPDOWN · FAB · TOAST · AGENDA DIA SELECIONADO
   mai/2026
══════════════════════════════════════════════════════════════════ */

/* ── Export dropdown: desktop vê botões individuais, mobile vê details ── */
.plantoes-export-details{display:none;position:relative}
.plantoes-export-details summary{list-style:none;cursor:pointer}
.plantoes-export-details summary::-webkit-details-marker{display:none}
.plantoes-export-menu{
  position:absolute;top:calc(100% + 6px);right:0;min-width:180px;
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);
  box-shadow:0 8px 24px rgba(0,0,0,.3);z-index:600;padding:5px 0;
  display:flex;flex-direction:column;
}
.plantoes-export-menu button{
  border:none;background:transparent;color:var(--text);font-family:var(--font);
  font-size:14px;padding:12px 18px;text-align:left;cursor:pointer;
  width:100%;white-space:nowrap;
}
.plantoes-export-menu button:hover{background:var(--bg3);color:var(--accent)}
.plantoes-export-menu button:active{background:var(--accent-bg)}

@media(max-width:768px){
  /* Esconder botões individuais no mobile */
  .plantoes-btn-csv,.plantoes-btn-xls,.plantoes-btn-pdf{display:none!important}
  /* Mostrar dropdown */
  .plantoes-export-details{display:block}
}

/* ── FAB — Novo Plantão (mobile only, inside #page-plantoes) ── */
.plantoes-fab{
  display:none; /* escondido em desktop */
  position:fixed;
  right:18px;
  bottom:calc(var(--mobile-nav-h, 72px) + env(safe-area-inset-bottom, 0px) + 14px);
  width:54px;height:54px;
  border-radius:50%;
  background:var(--accent);color:#fff;
  border:none;cursor:pointer;
  align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(79,142,247,.45);
  z-index:600; /* acima do conteúdo, abaixo de modais (1200) e bottom nav (1000) */
  transition:transform .15s,box-shadow .15s;
  -webkit-tap-highlight-color:transparent;
}
.plantoes-fab svg{width:24px;height:24px}
.plantoes-fab:hover{transform:scale(1.06);box-shadow:0 6px 22px rgba(79,142,247,.55)}
.plantoes-fab:active{transform:scale(.93)}

@media(max-width:768px){
  /* Exibir FAB apenas no mobile (o page-plantoes esconde o button quando page está display:none) */
  .plantoes-fab{display:flex}
  /* Agenda: garantir FAB não cobre itens na parte inferior */
  #page-plantoes #list{padding-bottom:80px}
}

/* ── Agenda — dia selecionado: botões e estilo extra ── */
.cal-agenda-title{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.cal-agenda-reset-btn{
  border:none;background:var(--bg3);color:var(--accent);font-family:var(--font);
  font-size:11px;padding:4px 10px;border-radius:999px;cursor:pointer;
  border:1px solid var(--accent-border);white-space:nowrap;flex-shrink:0;
}
.cal-agenda-reset-btn:hover{background:var(--accent-bg)}
.cal-agenda-empty-btn{
  display:block;margin:10px auto 0;border:1px solid var(--accent-border);
  background:var(--accent-bg);color:var(--accent);font-family:var(--font);
  font-size:13px;padding:8px 18px;border-radius:var(--radius);cursor:pointer;
}
.cal-agenda-empty-btn:hover{background:var(--accent);color:#fff}

/* ── Toast: limpar valor mágico 70px herdado de regra anterior ──
   (A regra correta com calc() em main.css já foi aplicada em Fase 1;
    esta é apenas documentação de que o valor 70px foi superado) ──── */
@media(max-width:768px){
  /* Garantir que o toast não cubra o FAB (FAB = 54px + 14px gap + nav ≈ 140px)
     A regra já existente usa calc(var(--mobile-nav-h) + ...) que é suficiente */
}

