/* ============================================================
   PLANTÃO CHECK — Design System v3 (SaaS Premium)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --bg-base:    #0b0d14;
  --bg-surface: #111420;
  --bg-card:    #171b28;
  --bg-hover:   #1c2030;
  --bg-input:   #0c0e14;
  --bg-subtle:  #12151f;

  --border:       #1f2436;
  --border-light: #252c40;
  --border-focus: #3b7dff;

  --text-primary:  #f0f3fb;
  --text-secondary:#98a8c4;
  --text-muted:    #55688a;
  --text-accent:   #6096ff;

  --accent:       #3b7dff;
  --accent-hover: #5490ff;
  --accent-dim:   #0e1e3e;
  --accent-glow:  rgba(59,125,255,.14);

  --danger:   #f05474;
  --success:  #2dd4a0;
  --warning:  #f5b942;
  --info:     #38bdf8;

  --sidebar-w: 268px;
  --topbar-h:  56px;
  --footer-h:  68px;

  --font-display: 'Space Grotesk', sans-serif;
  --font-body:    'DM Sans', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;

  --radius:    8px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --shadow:    0 8px 40px rgba(0,0,0,.55);
  --shadow-sm: 0 2px 12px rgba(0,0,0,.35);
  --shadow-glow: 0 0 0 1px var(--border-focus), 0 0 20px var(--accent-glow);
}

[data-theme="light"] {
  --bg-base:    #f0f2f8;
  --bg-surface: #ffffff;
  --bg-card:    #ffffff;
  --bg-hover:   #f4f6fc;
  --bg-input:   #f8f9fd;
  --bg-subtle:  #f2f4fa;

  --border:       #e2e7f2;
  --border-light: #eaeefc;
  --border-focus: #3b7dff;

  --text-primary:  #0d1117;
  --text-secondary:#374357;
  --text-muted:    #7a8fa8;
  --text-accent:   #2563eb;

  --accent:       #2563eb;
  --accent-hover: #3b7dff;
  --accent-dim:   #dbeafe;
  --accent-glow:  rgba(37,99,235,.09);

  --shadow:    0 8px 40px rgba(0,0,0,.09);
  --shadow-sm: 0 2px 12px rgba(0,0,0,.06);
}

[data-theme="pcsp"] {
  --bg-base:    #0a0a0a;
  --bg-surface: #111111;
  --bg-card:    #181818;
  --bg-hover:   #1e1e1e;
  --bg-input:   #0d0d0d;
  --bg-subtle:  #141414;

  --border:       #2a2a2a;
  --border-light: #333333;
  --border-focus: #cc0000;

  --text-primary:  #f5f5f5;
  --text-secondary:#b0b0b0;
  --text-muted:    #666666;
  --text-accent:   #ff4444;

  --accent:       #cc0000;
  --accent-hover: #e60000;
  --accent-dim:   #2a0000;
  --accent-glow:  rgba(204,0,0,.18);

  --danger:   #ff6b6b;
  --success:  #2dd4a0;
  --warning:  #f5b942;
  --info:     #38bdf8;

  --shadow:    0 8px 40px rgba(0,0,0,.7);
  --shadow-sm: 0 2px 12px rgba(0,0,0,.5);
  --shadow-glow: 0 0 0 1px var(--border-focus), 0 0 20px var(--accent-glow);
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg-base);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button{cursor:pointer;font-family:var(--font-body);border:none;background:none}
input,textarea{font-family:var(--font-body)}

/* ============================================================
   AUTH PAGE
   ============================================================ */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1rem 5rem;position:relative;overflow:hidden}

.auth-bg{position:fixed;inset:0;z-index:0}
.auth-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(rgba(59,125,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(59,125,255,.03) 1px,transparent 1px);
  background-size:48px 48px;
}
.auth-glow{position:absolute;top:-10%;left:50%;transform:translateX(-50%);width:800px;height:500px;background:radial-gradient(ellipse,rgba(59,125,255,.09) 0%,transparent 65%)}

.auth-container{position:relative;z-index:1;width:100%;max-width:400px}

.auth-brand{text-align:center;margin-bottom:2.2rem}
.brand-badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:60px;height:60px;
  background:linear-gradient(135deg,var(--accent-dim),rgba(59,125,255,.18));
  border:1.5px solid rgba(59,125,255,.35);
  border-radius:18px;
  margin-bottom:.9rem;
  box-shadow:0 0 24px rgba(59,125,255,.12);
}
.badge-icon{font-size:1.75rem}
.brand-title{font-family:var(--font-display);font-size:2.15rem;font-weight:800;letter-spacing:-.045em;color:var(--text-primary);line-height:1}
.brand-accent{color:var(--accent)}
.brand-sub{color:var(--text-muted);font-size:.76rem;margin-top:.35rem;font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase}

.auth-card{
  background:var(--bg-surface);
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  padding:2rem;
  box-shadow:var(--shadow);
}

.card-header{margin-bottom:1.5rem}
.card-header h2{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--text-primary)}
.card-header p{color:var(--text-secondary);font-size:.85rem;margin-top:.25rem;line-height:1.5}
.card-header strong{color:var(--text-primary)}

.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:.72rem;font-weight:600;color:var(--text-secondary);margin-bottom:.38rem;text-transform:uppercase;letter-spacing:.07em;font-family:var(--font-display)}
.form-group input{
  width:100%;padding:.75rem 1rem;
  background:var(--bg-input);
  border:1px solid var(--border);
  border-radius:var(--radius);
  color:var(--text-primary);font-size:.93rem;
  outline:none;
  transition:border-color .18s,box-shadow .18s;
}
.form-group input:focus{border-color:var(--border-focus);box-shadow:var(--shadow-glow)}
.form-group input::placeholder{color:var(--text-muted)}

.btn-primary{
  display:block;width:100%;padding:.85rem;
  background:var(--accent);
  color:#fff;
  border-radius:var(--radius);
  font-family:var(--font-display);font-size:.93rem;font-weight:700;letter-spacing:.01em;
  transition:background .18s,transform .1s,box-shadow .18s;
  margin-top:1.3rem;
  box-shadow:0 4px 16px rgba(59,125,255,.25);
}
.btn-primary:hover{background:var(--accent-hover);box-shadow:0 6px 24px rgba(59,125,255,.35)}
.btn-primary:active{transform:scale(.99)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

.btn-secondary{
  padding:.7rem 1.15rem;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);color:var(--text-primary);font-size:.86rem;font-weight:500;
  transition:background .18s,border-color .18s;
}
.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-light)}

.auth-switch{text-align:center;font-size:.83rem;color:var(--text-secondary);margin-top:.9rem}
.auth-hint{text-align:center;font-size:.78rem;color:var(--text-muted);margin-top:.65rem}
.auth-hint strong{color:var(--text-secondary)}

.auth-msg{padding:.7rem 1rem;border-radius:var(--radius);font-size:.83rem;margin-top:.75rem;line-height:1.5}
.auth-msg.error  {background:rgba(240,84,116,.09);border:1px solid rgba(240,84,116,.25);color:var(--danger)}
.auth-msg.success{background:rgba(45,212,160,.08);border:1px solid rgba(45,212,160,.25);color:var(--success)}
.auth-msg.info   {background:var(--accent-glow);border:1px solid rgba(59,125,255,.28);color:var(--text-accent)}

/* Code digits */
.code-group{display:flex;gap:.55rem;justify-content:center;margin:1.6rem 0}
.code-digit{
  width:52px;height:62px;
  text-align:center;
  font-family:var(--font-mono);font-size:1.6rem;font-weight:500;
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);
  color:var(--text-primary);outline:none;
  transition:border-color .18s,box-shadow .18s;
}
.code-digit:focus{border-color:var(--border-focus);box-shadow:var(--shadow-glow)}

/* Legal on auth */
.legal-notice{
  display:flex;gap:.55rem;align-items:flex-start;
  margin-top:1.1rem;padding:.75rem .95rem;
  background:rgba(59,125,255,.04);
  border:1px solid rgba(59,125,255,.12);
  border-radius:var(--radius);
  font-size:.74rem;color:var(--text-muted);line-height:1.55;
}
.legal-notice strong{color:var(--text-secondary)}
.legal-icon{font-size:.85rem;flex-shrink:0;margin-top:1px}
.app-credit{text-align:center;margin-top:.7rem;font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono)}
.spam-notice{font-size:.76rem;color:var(--text-muted);margin-top:.75rem;text-align:center;line-height:1.5;padding:.5rem .75rem;background:var(--accent-glow);border-radius:var(--radius);border:1px solid rgba(59,125,255,.18)}

/* ============================================================
   APP LAYOUT
   ============================================================ */
.app-page{display:flex;min-height:100vh}

/* ── SIDEBAR ── */
.sidebar{
  width:var(--sidebar-w);
  background:var(--bg-surface);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  position:fixed;top:0;left:0;bottom:0;z-index:200;
  transition:transform .26s cubic-bezier(.4,0,.2,1);
}

.sidebar-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem 1.1rem .9rem;
  border-bottom:1px solid var(--border);
}
.sidebar-brand{display:flex;align-items:center;gap:.45rem}
.sb-icon{font-size:1.2rem}
.sb-title{font-family:var(--font-display);font-size:1.08rem;font-weight:800;letter-spacing:-.025em}
.sb-accent{color:var(--accent)}
.sidebar-close{display:none;font-size:1.25rem;color:var(--text-muted);width:28px;height:28px;border-radius:6px;align-items:center;justify-content:center}
.sidebar-close:hover{background:var(--bg-hover)}

.sidebar-user{padding:.7rem 1.1rem;border-bottom:1px solid var(--border)}
.user-chip{display:flex;align-items:center;gap:.5rem}
.user-avatar{
  width:30px;height:30px;
  background:linear-gradient(135deg,var(--accent-dim),rgba(59,125,255,.2));
  border:1.5px solid rgba(59,125,255,.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.75rem;font-weight:700;color:var(--accent);flex-shrink:0;
  font-family:var(--font-display);
}
.user-name{font-size:.82rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-display)}
.user-role{font-size:.69rem;color:var(--text-muted);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}

.sidebar-nav{flex:1;overflow-y:auto;padding:.85rem .65rem}
.nav-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:0 .4rem;margin-bottom:.32rem;font-family:var(--font-mono)}
.sidebar-nav ul{list-style:none;display:flex;flex-direction:column;gap:1px}
.nav-link{
  display:flex;align-items:center;gap:.45rem;
  padding:.5rem .72rem;border-radius:var(--radius);
  color:var(--text-secondary);font-size:.82rem;font-weight:500;
  transition:background .15s,color .15s;width:100%;text-align:left;
}
.nav-link:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}
.nav-link.active{background:var(--accent-dim);color:var(--accent)}
.nav-link .nav-icon{font-size:.9rem;width:18px;text-align:center;flex-shrink:0}

.sidebar-footer{padding:.85rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.4rem}
.btn-theme{padding:.5rem .82rem;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:.8rem;background:none;transition:background .18s;text-align:left}
.btn-theme:hover{background:var(--bg-hover)}
.btn-logout{padding:.5rem .82rem;border:1px solid rgba(240,84,116,.2);border-radius:var(--radius);color:var(--danger);font-size:.8rem;background:none;transition:background .18s;text-align:left}
.btn-logout:hover{background:rgba(240,84,116,.06)}

.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:199}

/* ── MAIN ── */
.main-content{margin-left:var(--sidebar-w);flex:1;display:flex;flex-direction:column;min-height:100vh;padding-bottom:calc(var(--footer-h) + 1rem)}

/* ── TOPBAR ── */
.topbar{
  height:var(--topbar-h);background:var(--bg-surface);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:1rem;padding:0 1.4rem;
  position:sticky;top:0;z-index:100;
}
.hamburger{display:none;flex-direction:column;gap:5px;padding:6px;border-radius:6px}
.hamburger span{display:block;width:20px;height:2px;background:var(--text-primary);border-radius:2px;transition:.2s}
.hamburger:hover{background:var(--bg-hover)}
.topbar-title{font-family:var(--font-display);font-weight:700;font-size:.95rem;flex:1;letter-spacing:-.015em}
.topbar-actions{display:flex;gap:.4rem}
.btn-icon{padding:.46rem .62rem;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:.9rem;background:none;transition:background .18s,border-color .18s,color .18s}
.btn-icon:hover{background:var(--bg-hover);border-color:var(--border-light);color:var(--text-primary)}

/* ── HOME ── */
.home-view{padding:2rem}
.home-hero{margin-bottom:2rem}
.home-title{font-family:var(--font-display);font-size:1.7rem;font-weight:800;letter-spacing:-.035em}
.home-sub{color:var(--text-secondary);margin-top:.3rem;font-size:.87rem}

.occurrence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.85rem}

.occ-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:1.2rem;
  cursor:pointer;
  transition:border-color .2s,transform .16s,box-shadow .2s,background .16s;
  position:relative;overflow:hidden;
}
.occ-card::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,transparent 60%,rgba(59,125,255,.04));
  opacity:0;transition:opacity .2s;
}
.occ-card:hover{border-color:rgba(59,125,255,.4);transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,.3),0 0 0 1px rgba(59,125,255,.12);background:var(--bg-hover)}
.occ-card:hover::after{opacity:1}
.occ-card.occ-started{border-color:rgba(59,125,255,.25)}

.occ-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem;min-height:2rem}
.occ-icon{font-size:1.6rem;line-height:1}

/* Progress ring */
.occ-ring{position:relative;width:38px;height:38px;flex-shrink:0}
.occ-ring svg{width:38px;height:38px;transform:rotate(-90deg);display:block}
.occ-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.58rem;font-weight:700;color:var(--accent);font-family:var(--font-mono);line-height:1}

.occ-name{font-family:var(--font-display);font-weight:700;font-size:.9rem;line-height:1.3;color:var(--text-primary);margin-bottom:.25rem}
.occ-count{font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono)}
.occ-count strong{color:var(--accent)}

/* ── CHECKLIST VIEW ── */
.checklist-view{padding:1.8rem;max-width:840px}

.cl-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.8rem;flex-wrap:wrap}
.cl-title{font-family:var(--font-display);font-size:1.4rem;font-weight:800;letter-spacing:-.03em}
.cl-desc{color:var(--text-secondary);font-size:.84rem;margin-top:.22rem}

.cl-meta{display:flex;gap:.55rem;margin-top:.7rem;flex-wrap:wrap}
.cl-meta-input{
  padding:.42rem .8rem;
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);
  color:var(--text-primary);font-size:.81rem;outline:none;
  transition:border-color .18s,box-shadow .18s;min-width:0;
}
.cl-meta-input:focus{border-color:var(--border-focus);box-shadow:var(--shadow-glow)}
.cl-meta-input::placeholder{color:var(--text-muted)}
.cl-meta-input.bo{width:155px}
.cl-meta-input.kw{flex:1;min-width:170px}

.cl-progress-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:.26rem;min-width:125px}
.cl-progress-bar{width:125px;height:4px;background:var(--bg-hover);border-radius:99px;overflow:hidden}
.cl-progress-fill{height:100%;background:var(--accent);border-radius:99px;transition:width .35s cubic-bezier(.4,0,.2,1)}
.cl-progress-label{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}

.cl-body{display:flex;flex-direction:column;gap:1.1rem}

/* Sections */
.cl-section{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;
  transition:border-color .2s;
}
.cl-section.section-done{border-color:rgba(45,212,160,.25)}
.cl-section-header{
  display:flex;align-items:center;gap:.65rem;
  padding:.85rem 1.05rem;
  background:var(--bg-surface);border-bottom:1px solid var(--border);
  cursor:pointer;user-select:none;
  transition:background .15s;
}
.cl-section-header:hover{background:var(--bg-hover)}
.section-icon{font-size:.95rem}
.section-name{font-family:var(--font-display);font-weight:700;font-size:.87rem;flex:1}
.section-badge{
  font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);
  background:var(--bg-base);border:1px solid var(--border);
  padding:.15rem .5rem;border-radius:99px;
  transition:background .2s,color .2s,border-color .2s;
}
.section-badge.badge-done{background:rgba(45,212,160,.1);color:var(--success);border-color:rgba(45,212,160,.3)}
.section-toggle{color:var(--text-muted);transition:transform .2s;font-size:.72rem}
.section-toggle.open{transform:rotate(180deg)}

.cl-items{padding:.45rem 0}

/* Items */
.cl-item{
  display:flex;align-items:flex-start;gap:.7rem;
  padding:.58rem 1.05rem;
  transition:background .15s;cursor:pointer;
}
.cl-item:hover{background:var(--bg-hover)}
.cl-item.checked{opacity:.5}
.cl-item.checked .item-label{text-decoration:line-through;color:var(--text-muted)}

.item-checkbox{
  width:17px;height:17px;flex-shrink:0;margin-top:2px;
  border:1.5px solid var(--border-light);border-radius:4px;background:var(--bg-input);
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,border-color .15s;
}
.cl-item.checked .item-checkbox{background:var(--accent);border-color:var(--accent)}
.cl-item.checked .item-checkbox::after{content:'✓';color:#fff;font-size:.7rem;font-weight:700}

.item-content{flex:1}
.item-label{font-size:.85rem;color:var(--text-primary);line-height:1.48}
.item-obs  {margin-top:.28rem;font-size:.73rem;color:var(--text-muted);background:var(--bg-subtle);border-left:2px solid var(--warning);padding:.26rem .52rem;border-radius:0 4px 4px 0;font-family:var(--font-mono);line-height:1.5}
.item-alert{margin-top:.28rem;font-size:.73rem;color:var(--danger);background:rgba(240,84,116,.04);border-left:2px solid var(--danger);padding:.26rem .52rem;border-radius:0 4px 4px 0;font-family:var(--font-mono);line-height:1.5}
.item-tip  {margin-top:.28rem;font-size:.73rem;color:var(--success);background:rgba(45,212,160,.04);border-left:2px solid var(--success);padding:.26rem .52rem;border-radius:0 4px 4px 0;font-family:var(--font-mono);line-height:1.5}

.btn-template{
  display:inline-flex;align-items:center;gap:.32rem;
  margin-top:.42rem;padding:.3rem .68rem;
  background:var(--accent-dim);border:1px solid rgba(59,125,255,.25);border-radius:var(--radius);
  color:var(--accent);font-size:.72rem;font-weight:600;
  transition:background .18s,border-color .18s,color .18s;
}
.btn-template:hover{background:var(--accent);border-color:var(--accent);color:#fff}

/* Observations */
.obs-section{
  margin-top:1.5rem;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;
}
.obs-header{
  display:flex;align-items:center;gap:.55rem;
  padding:.8rem 1.05rem;background:var(--bg-surface);border-bottom:1px solid var(--border);
}
.obs-icon{font-size:.95rem}
.obs-label{font-family:var(--font-display);font-weight:700;font-size:.87rem;flex:1}
.obs-hint{font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono)}
.obs-textarea{
  display:block;width:100%;padding:.85rem 1.05rem;
  background:transparent;border:none;outline:none;resize:vertical;
  color:var(--text-primary);font-size:.85rem;font-family:var(--font-body);line-height:1.6;
  min-height:96px;
}
.obs-textarea::placeholder{color:var(--text-muted)}

.cl-actions{display:flex;gap:.6rem;margin-top:1.6rem;flex-wrap:wrap}

/* ── REFERENCE VIEW ── */
.ref-view{padding:1.8rem;max-width:840px}
.ref-body{display:flex;flex-direction:column;gap:1.1rem}
.ref-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.ref-section-title{font-family:var(--font-display);font-weight:700;font-size:.95rem;padding:.85rem 1.05rem;background:var(--bg-surface);border-bottom:1px solid var(--border)}
.ref-table{width:100%;border-collapse:collapse;font-size:.82rem}
.ref-table th{text-align:left;padding:.6rem 1.05rem;background:var(--bg-hover);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-family:var(--font-mono)}
.ref-table td{padding:.6rem 1.05rem;border-top:1px solid var(--border);color:var(--text-primary)}
.ref-table tr:hover td{background:var(--bg-hover)}
.ref-prose{padding:1.1rem}
.ref-prose p{font-size:.84rem;color:var(--text-secondary);line-height:1.65;margin-bottom:.52rem}
.ref-prose strong{color:var(--text-primary)}
.ref-prose ul{padding-left:1.1rem}
.ref-prose li{font-size:.84rem;color:var(--text-secondary);margin-bottom:.3rem;line-height:1.5}

/* ── MODALS ── */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:500;backdrop-filter:blur(2px)}
.modal{
  position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  background:var(--bg-surface);border:1px solid var(--border-light);
  border-radius:var(--radius-xl);
  width:min(560px,calc(100vw - 2rem));max-height:calc(100vh - 4rem);overflow-y:auto;
  z-index:501;box-shadow:var(--shadow);
}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.2rem 1.5rem;border-bottom:1px solid var(--border)}
.modal-header h3{font-family:var(--font-display);font-weight:700;font-size:1.05rem}
.modal-subtitle{font-size:.8rem;color:var(--text-secondary);margin-top:.2rem}
.modal-header button{font-size:1.2rem;color:var(--text-muted);width:28px;height:28px;border-radius:6px;flex-shrink:0;margin-top:2px}
.modal-header button:hover{background:var(--bg-hover)}
.modal-body{padding:1.4rem;display:flex;flex-direction:column;gap:.85rem}
.modal-footer{padding:.9rem 1.4rem;border-top:1px solid var(--border);display:flex;gap:.6rem;justify-content:flex-end;align-items:center}

.modal-form-group{display:flex;flex-direction:column;gap:.3rem}
.modal-form-group label{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);font-weight:600;font-family:var(--font-display)}
.modal-form-group input,.modal-form-group textarea{padding:.65rem .88rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.86rem;outline:none;font-family:var(--font-body);resize:vertical;transition:border-color .18s,box-shadow .18s}
.modal-form-group input:focus,.modal-form-group textarea:focus{border-color:var(--border-focus);box-shadow:var(--shadow-glow)}
.modal-form-group input::placeholder,.modal-form-group textarea::placeholder{color:var(--text-muted)}

.generated-text-box{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem;font-family:var(--font-mono);font-size:.79rem;color:var(--text-primary);line-height:1.78;white-space:pre-wrap;max-height:250px;overflow-y:auto}
.copy-bar{display:flex;justify-content:flex-end;margin-top:.45rem}
.btn-copy{display:inline-flex;align-items:center;gap:.3rem;padding:.38rem .8rem;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:.77rem;transition:all .18s}
.btn-copy:hover{background:var(--accent-dim);border-color:rgba(59,125,255,.3);color:var(--accent)}
.btn-copy.copied{background:rgba(45,212,160,.08);border-color:rgba(45,212,160,.3);color:var(--success)}

/* ── TRIAGE ── */
.triage-modal .modal-header h3{font-size:1.05rem}
.triage-body{gap:1.3rem}
.triage-question{display:flex;flex-direction:column;gap:.55rem}
.triage-q-label{font-family:var(--font-display);font-size:.88rem;font-weight:700;color:var(--text-primary)}
.triage-opts{display:flex;gap:.5rem;flex-wrap:wrap}
.triage-opt{
  flex:1;min-width:140px;
  padding:.8rem 1rem;
  background:var(--bg-card);
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  color:var(--text-primary);
  font-size:.88rem;font-weight:500;
  transition:all .18s;
  cursor:pointer;
  font-family:var(--font-body);
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  line-height:1.3;
}
.triage-opt:hover{background:var(--bg-hover);border-color:rgba(59,125,255,.35);color:var(--text-primary)}
.triage-opt.selected{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600;box-shadow:0 0 0 3px var(--accent-glow)}
.triage-opt-icon{font-size:1rem;flex-shrink:0;line-height:1}
.triage-opt-text{font-size:.86rem;font-weight:500;white-space:nowrap}
.triage-opt.selected .triage-opt-text{font-weight:700}

/* ── GLOBAL FOOTER ── */
.app-footer{
  position:fixed;bottom:0;left:0;right:0;
  background:var(--bg-surface);border-top:1px solid var(--border);
  padding:.52rem 1.5rem;z-index:150;text-align:center;
}
.footer-legal{font-size:.71rem;color:var(--text-muted);line-height:1.5;max-width:900px;margin:0 auto}
.footer-legal strong{color:var(--text-secondary)}
.footer-credit{font-size:.68rem;color:var(--text-muted);font-family:var(--font-mono);margin-top:.18rem}

/* ── UTILS ── */
.hidden{display:none!important}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:768px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .sidebar-close{display:flex}
  .sidebar-overlay.active{display:block}
  .main-content{margin-left:0}
  .hamburger{display:flex}
  .occurrence-grid{grid-template-columns:1fr 1fr}
  .cl-header{flex-direction:column}
  .cl-progress-wrap{align-items:flex-start}
  .cl-actions{flex-direction:column}
  .cl-actions button{width:100%;text-align:center}
  .app-footer{padding:.42rem 1rem}
}
@media(max-width:480px){
  .occurrence-grid{grid-template-columns:1fr}
  .home-view,.checklist-view,.ref-view{padding:1rem}
  .code-group{gap:.3rem}
  .code-digit{width:42px;height:52px;font-size:1.3rem}
  .cl-meta{flex-direction:column}
  .cl-meta-input.bo,.cl-meta-input.kw{width:100%}
  .triage-opts{flex-direction:column}
  .triage-opt{min-width:unset}
}

/* Hide print-only elements on screen */
.pdf-header, .pdf-print-footer, .pdf-obs-block, .pdf-triage-line { display: none; }

/* ── HOME SEARCH & HERO ── */
.home-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.btn-plantao-diario{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.6rem 1.1rem;
  background:var(--accent-dim);border:1.5px solid rgba(59,125,255,.3);
  border-radius:var(--radius);color:var(--accent);
  font-family:var(--font-display);font-size:.83rem;font-weight:700;
  transition:all .18s;white-space:nowrap;flex-shrink:0;
}
.btn-plantao-diario:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 16px rgba(59,125,255,.25)}

.home-search-wrap{margin-top:.75rem}
.home-search{
  width:100%;max-width:360px;
  padding:.6rem 1rem;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);
  color:var(--text-primary);font-size:.87rem;outline:none;
  transition:border-color .18s,box-shadow .18s;
}
.home-search:focus{border-color:var(--border-focus);box-shadow:var(--shadow-glow)}
.home-search::placeholder{color:var(--text-muted)}
.no-results{color:var(--text-muted);font-size:.87rem;padding:.5rem 0}

/* ── RECENT OCCURRENCE ── */
.recent-occ{
  display:flex;align-items:center;gap:.75rem;
  padding:.75rem 1rem;margin-top:.75rem;
  background:var(--bg-card);border:1px solid rgba(59,125,255,.2);
  border-radius:var(--radius-lg);cursor:pointer;
  transition:border-color .18s,background .18s;
}
.recent-occ:hover{border-color:var(--accent);background:var(--bg-hover)}
.recent-icon{font-size:1.4rem;flex-shrink:0}
.recent-info{display:flex;flex-direction:column;flex:1;min-width:0}
.recent-label{font-size:.69rem;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);font-family:var(--font-mono);font-weight:600}
.recent-name{font-family:var(--font-display);font-weight:700;font-size:.9rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recent-pct{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);font-weight:700;flex-shrink:0}
.recent-arrow{color:var(--text-muted);font-size:1rem;flex-shrink:0}

/* ── OCCURRENCE TIMER ── */
.occ-timer{
  font-family:var(--font-mono);font-size:.7rem;
  color:var(--text-muted);
  background:var(--bg-input);border:1px solid var(--border);
  padding:.18rem .5rem;border-radius:99px;
  margin-top:.2rem;letter-spacing:.04em;
}

/* ── CELEBRATION BANNER ── */
.celebration-banner{
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.75rem 1.2rem;margin-bottom:1.2rem;
  background:linear-gradient(135deg,rgba(45,212,160,.12),rgba(59,125,255,.08));
  border:1px solid rgba(45,212,160,.3);border-radius:var(--radius-lg);
  font-family:var(--font-display);font-weight:700;font-size:.95rem;
  color:var(--success);
}
.cel-icon{font-size:1.2rem}
.celebrate-in{animation:celebIn .4s cubic-bezier(.34,1.56,.64,1) forwards}
.celebrate-out{animation:celebOut .4s ease-in forwards}
@keyframes celebIn{from{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes celebOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.97)}}

/* ── PLANTÃO DIÁRIO MODAL ── */
#plantaoModal{max-width:500px}
#plantaoModal .modal-body{max-height:60vh;overflow-y:auto}

/* ── PLANTÃO BAR ── */
.plantao-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:.52rem 1.4rem;
  background:var(--accent-dim);
  border-bottom:1px solid rgba(59,125,255,.25);
  font-size:.8rem;gap:1rem;flex-wrap:wrap;
}
.plantao-bar.hidden{display:none!important}
.plantao-bar-info{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plantao-bar-info strong{color:var(--text-primary)}
.plantao-bar-icon{flex-shrink:0}
.plantao-bar-btn{padding:.3rem .75rem;background:none;border:1px solid rgba(59,125,255,.3);border-radius:var(--radius);color:var(--accent);font-size:.76rem;font-weight:600;flex-shrink:0;transition:background .18s}
.plantao-bar-btn:hover{background:rgba(59,125,255,.1)}

/* ── HISTÓRICO ── */
.hist-loading,.hist-empty{padding:2rem;text-align:center;color:var(--text-muted);font-size:.87rem}
.hist-item{
  display:flex;align-items:center;gap:.75rem;
  padding:.85rem 1.1rem;border-bottom:1px solid var(--border);
  cursor:pointer;transition:background .15s;position:relative;
}
.hist-item:hover{background:var(--bg-hover)}
.hist-main{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}
.hist-nome{font-family:var(--font-display);font-weight:700;font-size:.87rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hist-status{font-size:.68rem;font-family:var(--font-mono);padding:.15rem .45rem;border-radius:99px;flex-shrink:0}
.hist-status.done{background:rgba(45,212,160,.1);color:var(--success);border:1px solid rgba(45,212,160,.25)}
.hist-status.wip{background:var(--accent-glow);color:var(--accent);border:1px solid rgba(59,125,255,.25)}
.hist-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.2rem}
.hist-bo{font-size:.73rem;color:var(--accent);font-family:var(--font-mono)}
.hist-kw{font-size:.73rem;color:var(--text-muted);font-family:var(--font-mono)}
.hist-dt{font-size:.71rem;color:var(--text-muted);font-family:var(--font-mono)}
.hist-del{font-size:.85rem;padding:.3rem .4rem;color:var(--text-muted);border-radius:var(--radius);flex-shrink:0}
.hist-del:hover{background:rgba(240,84,116,.1);color:var(--danger)}
.hist-item{flex-direction:column;align-items:flex-start}
.hist-item > .hist-main{width:100%}

/* ── ARTIGOS ── */
.artigos-list{padding:.5rem 0}
.artigo-item{padding:.9rem 1.1rem;border-bottom:1px solid var(--border)}
.artigo-item:last-child{border-bottom:none}
.artigo-item.artigo-destaque{background:rgba(59,125,255,.03);border-left:3px solid var(--accent);padding-left:.9rem}
.artigo-header{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.4rem;flex-wrap:wrap}
.artigo-num{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--accent);background:var(--accent-dim);padding:.15rem .5rem;border-radius:99px;flex-shrink:0}
.artigo-titulo{font-family:var(--font-display);font-weight:700;font-size:.88rem;color:var(--text-primary)}
.artigo-texto{font-size:.82rem;color:var(--text-secondary);line-height:1.65}
.ref-title-destaque{background:rgba(240,84,116,.06)!important;border-left:3px solid var(--danger)!important;color:var(--danger)!important}
.ref-subtitle{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);font-weight:400;margin-left:.4rem}

/* ── ARTIGOS MENU ── */
.artigos-menu-item{
  display:flex;align-items:center;gap:.75rem;
  padding:.85rem 1rem;border-radius:var(--radius);
  cursor:pointer;transition:background .15s;
}
.artigos-menu-item:hover{background:var(--bg-hover)}
.artigos-menu-item.artigos-menu-destaque{border-left:3px solid var(--danger);background:rgba(240,84,116,.04)}
.artigos-menu-icon{font-size:1.3rem;flex-shrink:0}
.artigos-menu-info{display:flex;flex-direction:column;flex:1}
.artigos-menu-nome{font-family:var(--font-display);font-weight:700;font-size:.88rem;color:var(--text-primary)}
.artigos-menu-sub{font-size:.73rem;color:var(--text-muted);font-family:var(--font-mono);margin-top:.1rem}

/* ── CUSTOM BUILDER ── */
.custom-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.65rem;overflow:hidden}
.custom-section-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;background:var(--bg-surface);border-bottom:1px solid var(--border)}
.custom-items{padding:.4rem .8rem}
.custom-item-row{display:flex;align-items:center;gap:.45rem;margin-bottom:.35rem}
.custom-input{flex:1;padding:.5rem .7rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.84rem;outline:none;font-family:var(--font-body)}
.custom-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}
.custom-del-btn{padding:.3rem .45rem;color:var(--text-muted);border-radius:4px;font-size:.85rem;flex-shrink:0}
.custom-del-btn:hover{background:rgba(240,84,116,.1);color:var(--danger)}
.custom-add-item-btn{display:block;width:100%;padding:.4rem;text-align:left;font-size:.78rem;color:var(--accent);padding:.45rem .8rem;background:none;border:none;border-top:1px dashed var(--border);transition:background .15s}
.custom-add-item-btn:hover{background:var(--bg-hover)}

/* ── NEW OCC CARD ── */
.occ-card-new{border-style:dashed;opacity:.7}
.occ-card-new:hover{opacity:1;border-style:solid}

/* ── NAV CUSTOM BADGE ── */
.nav-custom-badge{font-size:.62rem;font-family:var(--font-mono);background:var(--accent-dim);color:var(--accent);padding:.08rem .35rem;border-radius:99px;margin-left:.3rem}

/* ── SYNC INDICATOR ── */
.sync-indicator {
  font-size: 1.1rem; color: var(--accent);
  animation: none; margin-left: -.3rem;
}
.sync-indicator.syncing { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ── RELATÓRIO ── */
.relatorio-view { padding: 1.5rem; max-width: 860px; }
.relatorio-actions { display: flex; gap: .65rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

.relatorio-doc {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.rel-header {
  padding: 1.3rem 1.5rem;
  background: var(--bg-hover);
  border-bottom: 2px solid var(--border);
}
.rel-brand-row { display: flex; align-items: center; gap: .6rem; margin-bottom: .9rem; }
.rel-brand-icon {
  width: 38px; height: 38px;
  background: var(--text-primary); border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; color: var(--bg-base); flex-shrink: 0;
}
.rel-brand-name { font-family: var(--font-display); font-size: 1.15rem; font-weight: 800; letter-spacing: -.025em; }
.rel-brand-name span { color: var(--accent); }
.rel-brand-sub { font-size: .7rem; color: var(--text-muted); font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .06em; }

.rel-plantao-info { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .4rem; }
.rel-info-row { display: flex; gap: .5rem; font-size: .82rem; }
.rel-info-label { color: var(--text-muted); font-family: var(--font-mono); font-size: .73rem; white-space: nowrap; }
.rel-info-val { color: var(--text-primary); font-weight: 600; }

.rel-empty { padding: 2rem; text-align: center; color: var(--text-muted); font-size: .87rem; }

.rel-ocorrencia { border-bottom: 1px solid var(--border); }
.rel-ocorrencia:last-of-type { border-bottom: none; }
.rel-oc-header {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: 1rem 1.5rem .7rem;
  background: var(--bg-card);
}
.rel-oc-num {
  width: 26px; height: 26px; flex-shrink: 0;
  background: var(--accent-dim); border: 1.5px solid rgba(59,125,255,.3);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: .72rem; font-weight: 700; color: var(--accent);
}
.rel-oc-info { flex: 1; min-width: 0; }
.rel-oc-nome { font-family: var(--font-display); font-weight: 700; font-size: .95rem; color: var(--text-primary); }
.rel-oc-meta { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: .25rem; }
.rel-oc-meta span { font-size: .72rem; color: var(--text-muted); font-family: var(--font-mono); }
.rel-badge-done { font-size: .7rem; background: rgba(45,212,160,.1); color: var(--success); border: 1px solid rgba(45,212,160,.25); padding: .15rem .5rem; border-radius: 99px; white-space: nowrap; font-family: var(--font-mono); flex-shrink: 0; }
.rel-badge-wip  { font-size: .7rem; background: var(--accent-glow); color: var(--accent); border: 1px solid rgba(59,125,255,.25); padding: .15rem .5rem; border-radius: 99px; white-space: nowrap; font-family: var(--font-mono); flex-shrink: 0; }

.rel-section { padding: .5rem 1.5rem; border-top: 1px solid var(--border); }
.rel-section-header { display: flex; justify-content: space-between; align-items: center; font-family: var(--font-display); font-size: .8rem; font-weight: 700; color: var(--text-secondary); padding: .4rem 0; }
.rel-section-badge { font-family: var(--font-mono); font-size: .7rem; color: var(--text-muted); }
.rel-section-items { padding-bottom: .35rem; }
.rel-item { display: flex; gap: .55rem; align-items: flex-start; padding: .25rem 0; font-size: .82rem; }
.rel-item-box { width: 14px; height: 14px; flex-shrink: 0; border: 1.5px solid var(--border-light); border-radius: 3px; display: flex; align-items: center; justify-content: center; font-size: .65rem; font-weight: 700; color: var(--accent); margin-top: 1px; }
.rel-item-done .rel-item-box { background: var(--accent); border-color: var(--accent); color: #fff; }
.rel-item-done .rel-item-label { color: var(--text-muted); text-decoration: line-through; }
.rel-item-label { color: var(--text-primary); line-height: 1.4; }

.rel-observacoes { margin: .5rem 1.5rem .75rem; padding: .6rem .85rem; background: var(--bg-hover); border-left: 3px solid var(--warning); border-radius: 0 6px 6px 0; font-size: .82rem; color: var(--text-secondary); line-height: 1.55; }

.rel-footer { padding: .75rem 1.5rem; border-top: 1px solid var(--border); font-size: .7rem; color: var(--text-muted); font-family: var(--font-mono); text-align: center; background: var(--bg-hover); }

/* ── QUESITOS ── */
.quesitos-list { padding-left: 1.3rem; margin-top: .4rem; }
.quesito-item { font-size: .84rem; color: var(--text-secondary); margin-bottom: .45rem; line-height: 1.55; }
.quesito-item::marker { color: var(--accent); font-weight: 700; }

/* ── MODELOS DE E-MAIL ── */
.email-fields { display: flex; flex-direction: column; gap: .75rem; }
.email-output-label {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--text-secondary);
  font-family: var(--font-display); margin-bottom: .4rem; margin-top: .25rem;
}
.email-anexos {
  margin-top: .75rem;
  background: var(--accent-glow);
  border: 1px solid rgba(59,125,255,.2);
  border-radius: var(--radius);
  padding: .75rem 1rem;
}
.email-anexos-title {
  font-size: .76rem; font-weight: 700; color: var(--accent);
  margin-bottom: .45rem; font-family: var(--font-display);
}
.email-anexo-item {
  font-size: .82rem; color: var(--text-secondary);
  padding: .2rem 0; display: flex; align-items: center; gap: .4rem;
}
.email-aviso {
  margin-top: .65rem;
  padding: .6rem .85rem;
  background: rgba(251,191,36,.08);
  border: 1px solid rgba(251,191,36,.25);
  border-radius: var(--radius);
  font-size: .8rem; color: var(--warning); line-height: 1.5;
}

/* ── DATE INPUT — ícone de calendário visível no modo escuro ── */
input[type="date"] {
  color-scheme: dark;
  color: var(--text-primary);
}
body[data-theme="light"] input[type="date"] {
  color-scheme: light;
}

/* ── BTN HOME NAV ── */
.btn-home-nav {
  display: flex; align-items: center; gap: .45rem;
  width: calc(100% - 1.3rem); margin: 0 .65rem .6rem;
  padding: .55rem .85rem;
  background: var(--accent-dim); border: 1.5px solid rgba(59,125,255,.25);
  border-radius: var(--radius); color: var(--accent);
  font-family: var(--font-display); font-size: .82rem; font-weight: 700;
  transition: background .18s, border-color .18s;
  text-align: left;
}
.btn-home-nav:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ── FINALIZAR BUTTON ── */
.btn-finalizar {
  padding: .6rem 1.1rem;
  background: rgba(45,212,160,.12); border: 1.5px solid rgba(45,212,160,.3);
  border-radius: var(--radius); color: var(--success);
  font-family: var(--font-display); font-weight: 700; font-size: .85rem;
  transition: all .18s;
}
.btn-finalizar:hover { background: var(--success); color: #fff; border-color: var(--success); }

/* ── EM ANDAMENTO SECTION ── */
.andamento-section { margin: .75rem 0 .25rem; }
.andamento-title {
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--text-muted);
  font-family: var(--font-display); margin-bottom: .45rem;
}
.andamento-item {
  display: flex; align-items: center; gap: .5rem;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); margin-bottom: .4rem; overflow: hidden;
}
.andamento-main {
  flex: 1; display: flex; align-items: center; gap: .6rem;
  padding: .6rem .75rem; cursor: pointer; min-width: 0;
}
.andamento-main:hover { background: var(--bg-hover); }
.andamento-icon { font-size: 1.15rem; flex-shrink: 0; }
.andamento-info { flex: 1; min-width: 0; }
.andamento-nome { font-family: var(--font-display); font-weight: 700; font-size: .85rem; color: var(--text-primary); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.andamento-prog { font-size: .7rem; color: var(--text-muted); font-family: var(--font-mono); }
.andamento-bar-wrap { width: 48px; height: 4px; background: var(--border); border-radius: 99px; flex-shrink: 0; overflow: hidden; }
.andamento-bar-fill { height: 100%; background: var(--accent); border-radius: 99px; transition: width .3s; }
.andamento-btns { display: flex; flex-direction: column; border-left: 1px solid var(--border); }
.andamento-btn-fin, .andamento-btn-del {
  flex: 1; padding: 0 .65rem; font-size: .85rem;
  border: none; border-radius: 0;
  transition: background .15s; cursor: pointer;
}
.andamento-btn-fin { color: var(--success); }
.andamento-btn-fin:hover { background: rgba(45,212,160,.15); }
.andamento-btn-del { color: var(--text-muted); border-top: 1px solid var(--border); }
.andamento-btn-del:hover { background: rgba(240,84,116,.1); color: var(--danger); }

/* ── TOAST ── */
.app-toast {
  position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%) translateY(20px);
  background: var(--text-primary); color: var(--bg-base);
  padding: .65rem 1.3rem; border-radius: 99px;
  font-family: var(--font-display); font-weight: 600; font-size: .85rem;
  opacity: 0; transition: opacity .25s, transform .25s;
  pointer-events: none; z-index: 9999; white-space: nowrap;
}
.app-toast.toast-show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ── FIX: Rotina do Plantão — itens não cortados ── */
#plantaoModal { max-height: 90vh; }
#plantaoModal .modal-body {
  max-height: calc(90vh - 140px);
  overflow-y: auto;
  padding-bottom: .5rem;
}
#plantaoModal .cl-section { margin-bottom: .75rem; }
#plantaoModal .cl-items { padding: .25rem 0; }
#plantaoModal .cl-item {
  min-height: 44px;
  height: auto;
  align-items: flex-start;
  padding: .55rem .75rem;
}
#plantaoModal .item-obs {
  white-space: normal;
  line-height: 1.5;
}

/* ── HISTÓRICO — action buttons ── */
.hist-main { cursor: pointer; }
.hist-main:hover .hist-nome { color: var(--accent); }
.hist-action-row {
  display: flex; gap: .4rem; margin-top: .5rem; flex-wrap: wrap;
}
.hist-action-btn {
  padding: .28rem .7rem; border-radius: var(--radius);
  font-size: .74rem; font-weight: 600; font-family: var(--font-display);
  border: 1.5px solid var(--border); color: var(--text-secondary);
  background: var(--bg-surface); transition: all .15s; cursor: pointer;
}
.hist-action-btn:hover { border-color: var(--border-focus); }
.hist-open:hover  { background: var(--accent-dim); color: var(--accent); border-color: rgba(59,125,255,.3); }
.hist-fin:hover   { background: rgba(45,212,160,.1); color: var(--success); border-color: rgba(45,212,160,.3); }
.hist-del:hover   { background: rgba(240,84,116,.1); color: var(--danger); border-color: rgba(240,84,116,.3); }

/* ── RELATÓRIO SIMPLIFICADO ── */
.rel-plantao-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .35rem .75rem;
  margin-top: .6rem;
}
.rel-info-cell { display: flex; flex-direction: column; }
.rel-info-cell-full { grid-column: 1 / -1; }

.rel-section-block { padding: 1.1rem 1.5rem; border-top: 1px solid var(--border); }
.rel-section-block-title {
  font-family: var(--font-display); font-weight: 800;
  font-size: .88rem; margin-bottom: .75rem; letter-spacing: -.01em;
}
.rel-title-done { color: var(--success); }
.rel-title-wip  { color: var(--accent); }
.rel-empty-sub  { font-size: .82rem; color: var(--text-muted); padding: .25rem 0; }

.rel-tabela {
  width: 100%; border-collapse: collapse;
  font-size: .83rem;
}
.rel-tabela th {
  text-align: left; font-family: var(--font-display); font-weight: 700;
  font-size: .7rem; text-transform: uppercase; letter-spacing: .06em;
  color: var(--text-muted); padding: .35rem .5rem .35rem 0;
  border-bottom: 1.5px solid var(--border);
}
.rel-tabela td {
  padding: .55rem .5rem .55rem 0;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
  color: var(--text-primary);
}
.rel-tabela tr:last-child td { border-bottom: none; }
.rel-td-num  { width: 28px; color: var(--text-muted); font-family: var(--font-mono); font-size: .75rem; }
.rel-td-tipo { font-weight: 600; }
.rel-td-bo   { width: 110px; white-space: nowrap; }
.rel-td-kw   { color: var(--text-secondary); font-size: .8rem; }
.rel-linha-bo  { font-family: var(--font-mono); font-size: .78rem; color: var(--accent); }
.rel-linha-sem { color: var(--text-muted); font-family: var(--font-mono); font-size: .78rem; }
.rel-linha-kw  { font-size: .79rem; color: var(--text-secondary); }
.rel-tabela-wip .rel-td-tipo { color: var(--text-secondary); }
.rel-th-num { width: 28px; }

/* ── RELATÓRIO PRINT ── */
@media print {
  .rel-plantao-grid { grid-template-columns: repeat(3, 1fr); gap: 2pt 8pt; }
  .rel-section-block { padding: 8pt 14pt; }
  .rel-section-block-title { font-size: 8.5pt; margin-bottom: 4pt; }
  .rel-tabela th { font-size: 6.5pt; padding: 2pt 4pt 2pt 0; }
  .rel-tabela td { font-size: 8pt; padding: 4pt 4pt 4pt 0; }
  .rel-empty-sub { font-size: 7.5pt; }
}

/* ── APP SPLASH (session recovery) ── */
.app-splash {
  position: fixed; inset: 0; z-index: 9998;
  background: var(--bg-base);
  display: flex; align-items: center; justify-content: center;
  transition: opacity .35s;
}
.app-splash.splash-fade { opacity: 0; pointer-events: none; }
.splash-inner { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.splash-spinner {
  width: 36px; height: 36px;
  border: 3px solid var(--border);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin .8s linear infinite;
}
.splash-inner span { font-size: .85rem; color: var(--text-muted); font-family: var(--font-mono); }

/* ── RESEND COUNTDOWN ── */
.resend-area {
  display: flex; flex-direction: column; align-items: center;
  gap: .55rem; margin-top: .25rem;
}
.resend-countdown {
  display: flex; align-items: center; gap: .45rem;
  padding: .55rem .9rem;
  background: var(--bg-input); border: 1px solid var(--border);
  border-radius: var(--radius); font-size: .82rem; color: var(--text-secondary);
  font-family: var(--font-body); line-height: 1.4;
}
.resend-countdown strong { color: var(--accent); font-family: var(--font-mono); font-size: .88rem; }
.resend-wait-icon { font-size: 1rem; }
.btn-resend {
  width: 100%; padding: .6rem;
  background: var(--bg-card); border: 1.5px solid var(--border);
  border-radius: var(--radius); color: var(--text-secondary);
  font-family: var(--font-display); font-weight: 700; font-size: .84rem;
  transition: all .18s; cursor: pointer;
}
.btn-resend:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-dim); }
.btn-resend:disabled { opacity: .5; cursor: not-allowed; }
.auth-link {
  font-size: .8rem; color: var(--text-muted);
  text-decoration: none; transition: color .15s;
}
.auth-link:hover { color: var(--accent); }

/* ── PWA INSTALL BANNER ── */
.install-banner {
  display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
  margin-top: 1rem; padding: .75rem 1rem;
  background: var(--accent-dim); border: 1.5px solid rgba(59,125,255,.25);
  border-radius: var(--radius-lg);
  font-size: .82rem; color: var(--text-secondary);
  animation: celebIn .4s cubic-bezier(.34,1.56,.64,1);
}
.install-icon { font-size: 1.2rem; flex-shrink: 0; }
.install-banner span { flex: 1; }
.install-banner button:first-of-type {
  padding: .38rem .85rem;
  background: var(--accent); color: #fff;
  border-radius: var(--radius); font-weight: 700;
  font-size: .8rem; flex-shrink: 0;
}
.install-banner button:first-of-type:hover { background: #2563eb; }
.install-close {
  background: none !important; color: var(--text-muted) !important;
  font-size: 1rem; padding: .2rem .4rem !important;
  flex-shrink: 0;
}

/* ── RELATÓRIO SIMPLES ── */
.relatorio-view { padding: 1.5rem; max-width: 860px; margin: 0 auto; }

.rel-header-simple {
  display: flex; gap: 1.5rem; align-items: flex-start;
  padding: 1.2rem 1.5rem 1rem;
  border-bottom: 2px solid var(--text-primary);
  margin-bottom: 0;
}
.rel-header-left { flex-shrink: 0; }
.rel-doc-title {
  font-family: var(--font-display); font-weight: 800;
  font-size: 1.1rem; letter-spacing: .03em;
  color: var(--text-primary); text-transform: uppercase;
}
.rel-doc-sub { font-size: .7rem; color: var(--text-muted); font-family: var(--font-mono); margin-top: .2rem; }
.rel-header-right { flex: 1; display: flex; flex-direction: column; gap: .2rem; }
.rel-header-line { font-size: .83rem; color: var(--text-secondary); }
.rel-header-line strong { color: var(--text-primary); }
.rel-header-muted { font-size: .74rem; color: var(--text-muted); font-family: var(--font-mono); }

.rel-tabela-wrap { padding: .75rem 1.5rem 1rem; }
.rel-tabela { width: 100%; border-collapse: collapse; font-size: .84rem; }
.rel-tabela th {
  text-align: left; font-family: var(--font-display); font-weight: 700;
  font-size: .69rem; text-transform: uppercase; letter-spacing: .07em;
  color: var(--text-muted); padding: .3rem .5rem .3rem 0;
  border-bottom: 1.5px solid var(--border);
}
.rel-tabela td {
  padding: .55rem .5rem .55rem 0;
  border-bottom: 1px solid var(--border);
  color: var(--text-primary); vertical-align: middle;
}
.rel-tabela tr:last-child td { border-bottom: none; }
.rel-td-num  { width: 28px; color: var(--text-muted); font-family: var(--font-mono); font-size: .74rem; }
.rel-td-tipo { font-weight: 600; }
.rel-td-bo   { font-family: var(--font-mono); font-size: .8rem; color: var(--accent); }
.rel-td-kw   { font-size: .8rem; color: var(--text-secondary); }
.rel-td-status { text-align: center; font-size: .9rem; }
.rel-badge-done { color: var(--success); font-weight: 700; }
.rel-badge-wip  { color: var(--accent); }

.rel-footer-simple {
  padding: .6rem 1.5rem;
  border-top: 1px solid var(--border);
  font-size: .7rem; color: var(--text-muted);
  font-family: var(--font-mono);
}
.rel-empty-sub { padding: .5rem 0; font-size: .84rem; color: var(--text-muted); }

/* ── PRINT RULES ── */
@media print {
  /* Force light theme for printing regardless of user's theme */
  body, .relatorio-view, .relatorio-doc,
  .rel-header-simple, .rel-tabela-wrap, .rel-footer-simple {
    background: #fff !important;
    color: #000 !important;
    color-scheme: light !important;
  }

  /* Hide UI chrome and form */
  .no-print, .relatorio-actions, .topbar, .sidebar,
  .plantao-bar, .rel-add-form, .pdf-obs-block { display: none !important; }

  body, .relatorio-view { padding: 0 !important; margin: 0 !important; max-width: 100% !important; }
  .relatorio-doc { box-shadow: none !important; border: none !important; }

  .rel-header-simple {
    border-bottom: 2pt solid #000 !important;
    padding: 8pt 12pt 6pt !important;
  }
  .rel-doc-title { font-size: 11pt !important; color: #000 !important; }
  .rel-doc-sub   { font-size: 6pt !important; color: #666 !important; }
  .rel-header-line { font-size: 8pt !important; color: #333 !important; }
  .rel-header-line strong { color: #000 !important; }
  .rel-header-muted { font-size: 7pt !important; color: #888 !important; }

  .rel-tabela-wrap { padding: 6pt 12pt 8pt !important; }
  .rel-tabela { background: #fff !important; }
  .rel-tabela th { font-size: 6.5pt !important; border-bottom: 1.5pt solid #000 !important; padding: 2pt 4pt 2pt 0 !important; color: #000 !important; background: #fff !important; }
  .rel-tabela td { font-size: 8.5pt !important; border-bottom: .5pt solid #ccc !important; padding: 4pt 4pt 4pt 0 !important; color: #000 !important; background: #fff !important; }
  .rel-td-num  { color: #666 !important; }
  .rel-td-bo   { color: #000 !important; }
  .rel-td-kw   { color: #444 !important; }
  .rel-td-del  { display: none !important; }
  .rel-footer-simple { font-size: 6pt !important; color: #888 !important; border-top: .5pt solid #ccc !important; padding: 4pt 12pt !important; background: #fff !important; }

  @page { margin: 1.2cm; size: A4; }
}

/* ── AUTORIZAÇÃO SANGUE ── */
.btn-print-doc {
  padding: .52rem 1rem;
  background: var(--bg-card); border: 1.5px solid var(--border);
  border-radius: var(--radius); color: var(--text-secondary);
  font-family: var(--font-display); font-weight: 700; font-size: .82rem;
  transition: all .15s; cursor: pointer; margin-left: .45rem;
}
.btn-print-doc:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-dim); }

/* ── MODAL PCDOC — selects e preview ── */
#pcdocModalBody select {
  width: 100%;
  padding: .55rem .75rem;
  background: var(--bg-input);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text-primary);
  font-size: .85rem;
  outline: none;
  transition: border-color .18s;
}
#pcdocModalBody select:focus { border-color: var(--border-focus); box-shadow: var(--shadow-glow); }
#pcdocModalBody select:disabled { opacity: .5; cursor: not-allowed; }
#pcdocPreview img { max-width: 60px; }

/* ── PCDOC ADDRESS FIELD ── */
.pcdoc-cep-row {
  display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem;
}
.pcdoc-cep-status {
  font-size: .78rem; font-family: var(--font-mono);
  min-width: 130px;
}
.pcdoc-cep-status.loading { color: var(--text-muted); }
.pcdoc-cep-status.ok      { color: var(--success); font-weight: 700; }
.pcdoc-cep-status.error   { color: var(--danger); }

.pcdoc-addr-fields {
  display: flex; flex-direction: column; gap: .4rem;
}
.pcdoc-addr-fields input {
  width: 100%;
  padding: .5rem .7rem;
  background: var(--bg-input); border: 1px solid var(--border);
  border-radius: var(--radius); color: var(--text-primary);
  font-size: .84rem; outline: none; transition: border-color .18s;
}
.pcdoc-addr-fields input:focus {
  border-color: var(--border-focus); box-shadow: var(--shadow-glow);
}
.pcdoc-addr-row2 { display: flex; gap: .4rem; }
.pcdoc-addr-row2 input { flex: 1; }

/* ── HOME SHORTCUTS ── */
.home-shortcuts {
  padding: 1rem 1.5rem .25rem;
  display: flex; flex-direction: column; gap: .75rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: .25rem;
}
.home-shortcut-group { display: flex; flex-direction: column; gap: .4rem; }
.home-shortcut-label {
  font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--text-muted);
  font-family: var(--font-display);
}
.home-shortcut-row {
  display: flex; flex-wrap: wrap; gap: .4rem;
}
.home-sc {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .38rem .75rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-family: var(--font-display); font-weight: 600;
  font-size: .8rem; color: var(--text-secondary);
  cursor: pointer; white-space: nowrap;
  transition: border-color .15s, color .15s, background .15s;
}
.home-sc:hover {
  border-color: rgba(59,125,255,.4);
  color: var(--accent);
  background: var(--accent-dim);
}

/* ── HOME OCCURRENCE SECTION ── */
.home-occ-section {
  padding: 1rem 1.5rem 1.5rem;
}
.home-occ-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: .9rem; flex-wrap: wrap;
}
.home-occ-title {
  font-family: var(--font-display); font-weight: 800;
  font-size: 1rem; color: var(--text-primary);
  letter-spacing: -.02em; flex-shrink: 0;
}
.home-occ-actions {
  display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
}
.home-occ-actions .home-search { width: 200px; margin: 0; }

/* ── LEGIBILIDADE GLOBAL — melhorias de contraste ── */
.cl-item { color: var(--text-primary); }
.cl-item .item-label { color: var(--text-primary); font-size: .87rem; line-height: 1.5; }
.cl-item.checked .item-label { color: var(--text-muted); }

.artigo-texto { color: var(--text-secondary); font-size: .84rem; line-height: 1.7; }
.artigo-titulo { color: var(--text-primary); font-size: .9rem; }

.hist-nome { font-size: .9rem; }
.hist-dt   { font-size: .74rem; }

.modal-body label {
  font-size: .75rem; font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase; letter-spacing: .06em;
  font-family: var(--font-display);
}

.nav-link { color: var(--text-secondary); font-size: .84rem; }
.nav-link:hover, .nav-link.active { color: var(--text-primary); }

/* ── CHECKLIST items — maior espaçamento ── */
.cl-item { min-height: 46px; padding: .65rem .9rem; }
.cl-section-header { padding: .6rem .9rem; }
.cl-section-name { font-size: .87rem; }

/* ── OCC CARD — mais legível ── */
.occ-name { font-size: .92rem; }
.occ-count { font-size: .74rem; }

@media (max-width: 768px) {
  .home-shortcuts { padding: .85rem 1rem .2rem; }
  .home-occ-section { padding: .85rem 1rem 1.25rem; }
  .home-occ-actions .home-search { width: 140px; }
}

/* ── PCDOC TOGGLE FIELD ── */
.pcdoc-toggle-label {
  display: flex; align-items: center; gap: .5rem;
  cursor: pointer; font-size: .82rem;
  color: var(--text-secondary);
  text-transform: none; letter-spacing: 0;
  font-weight: 600; font-family: var(--font-display);
}
.pcdoc-toggle-label input[type="checkbox"] {
  width: 16px; height: 16px; flex-shrink: 0;
  accent-color: var(--accent); cursor: pointer;
}

/* ── MODAL PLANTÃO — selects de unidade ── */
#plantaoInicioModal select {
  width: 100%;
  padding: .55rem .75rem;
  background: var(--bg-input);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text-primary);
  font-size: .85rem;
  outline: none;
  transition: border-color .18s;
}
#plantaoInicioModal select:focus { border-color: var(--border-focus); box-shadow: var(--shadow-glow); }
#plantaoInicioModal select:disabled { opacity: .5; cursor: not-allowed; }

/* ── RELATÓRIO — formulário de entrada manual ── */
.rel-add-form {
  padding: .75rem 1.5rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-surface);
}
.rel-add-fields {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
}
.rel-add-fields input[type="text"] {
  padding: .5rem .7rem;
  background: var(--bg-input); border: 1px solid var(--border);
  border-radius: var(--radius); color: var(--text-primary);
  font-size: .84rem; outline: none; min-width: 0;
  transition: border-color .18s;
}
.rel-add-fields input[type="text"]:focus { border-color: var(--border-focus); box-shadow: var(--shadow-glow); }
.rel-flag-label {
  display: flex; align-items: center; gap: .35rem;
  font-size: .82rem; color: var(--text-secondary);
  font-family: var(--font-display); font-weight: 600;
  white-space: nowrap; cursor: pointer; flex-shrink: 0;
}
.rel-flag-label input[type="checkbox"] {
  width: 15px; height: 15px; accent-color: var(--accent); cursor: pointer;
}

/* ── PLANTÃO BAR — botão editar ── */
.plantao-bar-btns { display: flex; align-items: center; gap: .4rem; }
.plantao-bar-btn-edit {
  background: rgba(255,255,255,.08) !important;
  font-size: .75rem !important;
}

/* ── PRINT: hide form, show table only ── */
@media print {
  .rel-add-form { display: none !important; }
  .rel-td-del   { display: none !important; }
}

/* ── TEMPLATE MODAL — multiselect ── */
.tmpl-checks {
  display: flex; flex-direction: column; gap: .35rem;
  max-height: 260px; overflow-y: auto;
  padding: .5rem .6rem;
  background: var(--bg-input); border: 1px solid var(--border);
  border-radius: var(--radius);
}
.tmpl-check-label {
  display: flex; align-items: flex-start; gap: .5rem;
  font-size: .82rem; color: var(--text-secondary);
  cursor: pointer; padding: .18rem 0; line-height: 1.4;
}
.tmpl-check-label input[type="checkbox"] {
  margin-top: .15rem; flex-shrink: 0;
  width: 15px; height: 15px; accent-color: var(--accent); cursor: pointer;
}
.tmpl-check-label:hover { color: var(--text-primary); }

/* ── EMAIL SPLIT INPUT ── */
.email-split-wrap {
  display: flex; gap: .4rem; align-items: stretch;
}
.email-split-wrap input[type="text"] {
  flex: 1; min-width: 0;
}
.email-split-wrap select {
  flex-shrink: 0;
  padding: .52rem .55rem;
  background: var(--bg-input); border: 1px solid var(--border);
  border-radius: var(--radius); color: var(--text-secondary);
  font-size: .78rem; outline: none; cursor: pointer;
  transition: border-color .18s;
  max-width: 200px;
}
.email-split-wrap select:focus { border-color: var(--border-focus); }

/* ── HOME SECTIONS ── */
.home-sections {
  display: flex; flex-direction: column;
  padding: 1.1rem 1.4rem;
  gap: 0;
}
.home-section {
  padding: .85rem 0;
  border-bottom: 1px solid var(--border);
}
.home-section:last-child { border-bottom: none; }

.home-section-title {
  font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .09em; color: var(--text-muted);
  font-family: var(--font-display);
  margin-bottom: .6rem;
}

/* ── HOME GRID (inside each section) ── */
.home-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .55rem;
}

.home-card {
  display: flex; align-items: center; gap: .85rem;
  padding: .9rem 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  cursor: pointer; text-align: left;
  transition: border-color .15s, background .15s, transform .13s;
  position: relative; overflow: hidden;
}
.home-card:hover {
  border-color: rgba(59,125,255,.35);
  background: var(--bg-hover);
  transform: translateY(-2px);
}
.home-card-checklist {
  border-color: rgba(59,125,255,.3);
  background: var(--accent-dim);
}
.home-card-checklist:hover { border-color: var(--accent); }

.home-card-icon {
  font-size: 1.5rem; flex-shrink: 0;
  width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg-surface);
  border-radius: var(--radius);
}
.home-card-checklist .home-card-icon {
  background: rgba(59,125,255,.15);
}
.home-card-body { flex: 1; min-width: 0; }
.home-card-title {
  font-family: var(--font-display); font-weight: 700;
  font-size: .88rem; color: var(--text-primary);
  line-height: 1.25; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.home-card-sub {
  font-size: .72rem; color: var(--text-secondary);
  margin-top: .1rem; line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.home-card-arrow {
  color: var(--accent); font-size: 1rem; flex-shrink: 0;
}

@media (max-width: 600px) {
  .home-grid { grid-template-columns: 1fr; padding: .9rem 1rem; gap: .5rem; }
}

/* ── TOPBAR — botão plantão ── */
.btn-icon-plantao {
  display: flex; align-items: center; gap: .35rem;
  padding: .38rem .85rem !important;
  font-size: .8rem !important; font-weight: 700;
  font-family: var(--font-display) !important;
  border-radius: var(--radius) !important;
  border: 1.5px solid rgba(59,125,255,.3) !important;
  color: var(--accent) !important;
  background: var(--accent-dim) !important;
  transition: background .15s, border-color .15s;
}
.btn-icon-plantao:hover {
  background: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
}

/* ── TEMPLATE MODAL — radio buttons ── */
.tmpl-radio-group {
  display: flex; flex-wrap: wrap; gap: .5rem .9rem;
  margin-top: .2rem;
}
.tmpl-radio-label {
  display: flex; align-items: center; gap: .35rem;
  font-size: .84rem; color: var(--text-secondary);
  cursor: pointer;
}
.tmpl-radio-label input[type="radio"] {
  width: 15px; height: 15px;
  accent-color: var(--accent); cursor: pointer; flex-shrink: 0;
}
.tmpl-radio-label:hover { color: var(--text-primary); }

/* ── LINKS ÚTEIS ── */
.links-list {
  display: flex; flex-direction: column; gap: .5rem;
  padding: .25rem 0;
}
.link-item {
  display: flex; flex-direction: column; gap: .1rem;
  padding: .75rem 1rem;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-decoration: none;
  transition: border-color .15s, background .15s;
}
.link-item:hover {
  border-color: rgba(59,125,255,.35);
  background: var(--bg-hover);
}
.link-item-name {
  font-family: var(--font-display); font-weight: 700;
  font-size: .9rem; color: var(--accent);
}
.link-item-desc {
  font-size: .76rem; color: var(--text-secondary); line-height: 1.4;
}

/* ── HOME LINKS GRID ── */
.home-links-grid {
  display: flex; flex-direction: column; gap: .4rem;
}
.home-link-item {
  display: flex; align-items: center; gap: .75rem;
  padding: .65rem .9rem;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-decoration: none !important;
  transition: border-color .15s, background .15s;
}
.home-link-item:hover {
  border-color: rgba(59,125,255,.35);
  background: var(--bg-hover);
  text-decoration: none !important;
}
.home-link-icon { font-size: 1rem; flex-shrink: 0; color: var(--accent); }
.home-link-name {
  font-family: var(--font-display); font-weight: 700;
  font-size: .86rem; color: var(--accent);
  flex-shrink: 0; min-width: 130px;
}
.home-link-desc {
  font-size: .74rem; color: var(--text-secondary); line-height: 1.3;
}

/* ── SIDEBAR LINKS EXTERNOS ── */
.nav-link-ext { color: var(--accent) !important; }
.nav-link-ext:hover { color: var(--accent-hover) !important; }
