/* ================================================================
   PipeFreela v2 — Design System (Light Professional)
   Paleta da marca: sidebar azul-marinho, acento verde vibrante,
   fundo cinza-azulado, superfícies brancas.
   ================================================================ */
:root {
  --sidebar-w:       248px;
  --topbar-h:        56px;

  --bg:              #f0f4f8;
  --surface:         #ffffff;
  --surface-2:       #f8fafc;
  --surface-3:       #f1f5f9;
  --border:          #e2e8f0;
  --border-2:        #cbd5e1;

  --text:            #1a2d4f;
  --text-2:          #64748b;
  --text-3:          #94a3b8;

  --green:           #16a34a;
  --green-light:     #22c55e;
  --green-dark:      #15803d;
  --green-ghost:     #dcfce7;

  --sidebar-bg:      #1a2d4f;
  --sidebar-surface: #1e3560;
  --sidebar-hover:   #243f73;
  --sidebar-active:  #16a34a;
  --sidebar-text:    #94afd4;
  --sidebar-text-hi: #e8f0ff;
  --sidebar-border:  #243556;

  --blue:            #1d6fb5;
  --blue-dark:       #175e9c;
  --purple:          #7c3aed;
  --orange:          #ea580c;
  --red:             #dc2626;
  --cyan:            #0891b2;

  --r:               8px;
  --r-lg:            12px;
  --shadow:          0 1px 4px rgba(26,45,79,.08),0 2px 8px rgba(26,45,79,.05);
  --shadow-md:       0 4px 16px rgba(26,45,79,.10);
  --shadow-lg:       0 8px 32px rgba(26,45,79,.14);
  --t:               .16s ease;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
ul{list-style:none}
code{font-family:'JetBrains Mono',monospace}

/* ── Login ─────────────────────────────────────────── */
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f5e9 0%,#e3f0fb 50%,#f0f4f8 100%)}
.login-wrap{width:100%;max-width:420px;padding:1.5rem}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:2.5rem;box-shadow:var(--shadow-lg)}
.login-brand{text-align:center;margin-bottom:1.75rem}
.login-icon{font-size:2.8rem;display:block;margin-bottom:.4rem;filter:drop-shadow(0 0 10px #16a34a55)}
.login-brand h1{font-size:1.7rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#1a2d4f,#16a34a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.login-brand p{font-size:.82rem;color:var(--text-2);margin-top:.2rem}
.login-form{display:flex;flex-direction:column;gap:1rem}
.login-hint{text-align:center;font-size:.75rem;color:var(--text-3);margin-top:1rem}
.login-back{display:block;text-align:center;font-size:.8rem;color:var(--text-2);margin-top:1.25rem}
.login-back:hover{color:var(--green)}
.code-input{text-align:center;font-size:1.4rem;letter-spacing:.3em;font-family:'JetBrains Mono',monospace}

/* ── App Shell ─────────────────────────────────────── */
.app-body{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);min-height:100vh;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;z-index:200;transition:transform var(--t)}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1rem;border-bottom:1px solid var(--sidebar-border)}
.sidebar-logo{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.05rem}
.logo-glyph{font-size:1.4rem;filter:drop-shadow(0 0 8px #22c55e99)}
.logo-text{background:linear-gradient(135deg,#ffffff,#86efac);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.sidebar-close{display:none;background:none;border:none;color:var(--sidebar-text);cursor:pointer;font-size:1rem;padding:.2rem .4rem;border-radius:4px}
.sidebar-close:hover{background:var(--sidebar-hover);color:var(--sidebar-text-hi)}
.sidebar-nav{flex:1;padding:.5rem 0;overflow-y:auto}
.nav-section{margin-bottom:.25rem}
.nav-label{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text);opacity:.6;padding:.5rem 1rem .25rem}
.nav-item{display:flex;align-items:center;gap:.65rem;padding:.55rem .9rem;margin:.08rem .5rem;border-radius:var(--r);color:var(--sidebar-text);font-size:.82rem;font-weight:500;transition:background var(--t),color var(--t);cursor:pointer}
.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-hi)}
.nav-item.active{background:var(--green);color:#fff;box-shadow:0 2px 8px rgba(22,163,74,.4)}
.ni{width:16px;height:16px;flex-shrink:0;opacity:.75}
.nav-item.active .ni,.nav-item:hover .ni{opacity:1}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:99px;min-width:18px;text-align:center}
.sidebar-footer{padding:.65rem;border-top:1px solid var(--sidebar-border);display:flex;align-items:center;gap:.4rem}
.sidebar-user{display:flex;align-items:center;gap:.55rem;flex:1;padding:.35rem .5rem;border-radius:var(--r);transition:background var(--t);overflow:hidden}
.sidebar-user:hover{background:var(--sidebar-hover)}
.user-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--green-dark));display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}
.user-avatar-sm{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--green-dark));display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff}
.user-info{display:flex;flex-direction:column;min-width:0}
.user-name{font-size:.78rem;font-weight:600;color:var(--sidebar-text-hi);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:.68rem;color:var(--sidebar-text)}
.btn-logout{padding:.35rem;border-radius:var(--r);color:var(--sidebar-text);transition:color var(--t),background var(--t);display:flex;align-items:center}
.btn-logout:hover{color:#fca5a5;background:rgba(220,38,38,.15)}

/* ── Main Wrapper ──────────────────────────────────── */
.main-wrapper{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-height:100vh;min-width:0}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(26,45,79,.55);z-index:150}

/* ── Topbar ────────────────────────────────────────── */
.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 1.5rem;gap:.75rem;position:sticky;top:0;z-index:100;box-shadow:0 1px 3px rgba(26,45,79,.06)}
.topbar-burger{display:none;background:none;border:none;color:var(--text-2);cursor:pointer;padding:.3rem;border-radius:var(--r);transition:background var(--t)}
.topbar-burger:hover{background:var(--surface-3)}
.topbar-title{font-size:.9rem;font-weight:700;flex:1;color:var(--text)}
.topbar-right{display:flex;align-items:center;gap:.65rem}
.topbar-divider{width:1px;height:18px;background:var(--border)}
.notif-btn{position:relative;padding:.35rem;color:var(--text-2);border-radius:var(--r);transition:color var(--t),background var(--t);display:flex}
.notif-btn:hover{background:var(--surface-3);color:var(--text)}
.notif-btn.has-unread{color:var(--orange)}
.notif-dot{position:absolute;top:2px;right:2px;background:var(--red);color:#fff;font-size:.6rem;font-weight:700;border-radius:99px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 .25rem}

/* ── Main Content ──────────────────────────────────── */
.main-content{flex:1;padding:1.75rem;overflow-y:auto}

/* ── Page Header ───────────────────────────────────── */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}
.page-title{font-size:1.3rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.page-subtitle{font-size:.78rem;color:var(--text-2);margin-top:.15rem}
.header-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

/* ── Cards ─────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.card-form{max-width:860px}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.25rem;border-bottom:1px solid var(--border);gap:.5rem;flex-wrap:wrap}
.card-title{font-size:.88rem;font-weight:700;color:var(--text)}
.card-action{font-size:.78rem;color:var(--green);white-space:nowrap;font-weight:500}
.card-action:hover{text-decoration:underline}
.card-body{padding:1.25rem}
.card-body.p-0{padding:0}
.card-alert{border-color:#fed7aa;background:#fff7ed}
.alert-body{display:flex;align-items:flex-start;gap:1rem}
.alert-icon{font-size:1.5rem;flex-shrink:0}
.mb-4{margin-bottom:1.25rem}.mt-4{margin-top:1.25rem}.mt-3{margin-top:.75rem}.mt-2{margin-top:.5rem}.mb-3{margin-bottom:.75rem}

/* ── Stats Grid ────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.25rem}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.25rem;display:flex;align-items:center;gap:.9rem;transition:border-color var(--t),box-shadow var(--t);box-shadow:var(--shadow)}
.stat-card:hover{border-color:var(--green);box-shadow:var(--shadow-md)}
.stat-icon{width:46px;height:46px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.si-blue{background:#dbeafe;color:var(--blue)}
.si-purple{background:#ede9fe;color:var(--purple)}
.si-green{background:var(--green-ghost);color:var(--green)}
.si-orange{background:#ffedd5;color:var(--orange)}
.stat-info{display:flex;flex-direction:column}
.stat-value{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--text)}
.stat-label{font-size:.72rem;color:var(--text-2);margin-top:.15rem}

/* ── Dashboard Grid ────────────────────────────────── */
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.chart-wrap{height:240px}
.chart-legend{display:flex;align-items:center;gap:.75rem;font-size:.75rem;color:var(--text-2)}
.legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.legend-dot.ml{margin-left:.35rem}

/* ── Pipeline bars ─────────────────────────────────── */
.pipeline-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.55rem}
.pipeline-label{font-size:.75rem;color:var(--text-2);width:88px;flex-shrink:0}
.pipeline-bar-wrap{flex:1;height:8px;background:var(--surface-3);border-radius:99px;overflow:hidden;border:1px solid var(--border)}
.pipeline-bar{height:100%;border-radius:99px;transition:width .5s ease}
.pipeline-count{font-size:.75rem;font-weight:700;width:22px;text-align:right;color:var(--text-2)}

/* ── Table ─────────────────────────────────────────── */
.table{width:100%;border-collapse:collapse;font-size:.82rem}
.table thead tr{border-bottom:2px solid var(--border);background:var(--surface-2)}
.table th{padding:.65rem 1rem;text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}
.table td{padding:.8rem 1rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
.table tbody tr:last-child td{border-bottom:none}
.table-hover tbody tr:hover{background:#f0fdf4}
.th-actions{text-align:right}
.td-actions{text-align:right;display:flex;gap:.3rem;justify-content:flex-end;align-items:center}
.cell-avatar{display:flex;align-items:center;gap:.55rem}
.avatar-sm{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--green-dark));display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff;flex-shrink:0}

/* ── Badges ────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:99px;font-size:.68rem;font-weight:600;white-space:nowrap}
.badge-lead{background:#ede9fe;color:#6d28d9}
.badge-proposal{background:#dbeafe;color:#1d4ed8}
.badge-negotiation{background:#fef3c7;color:#b45309}
.badge-contract{background:#cffafe;color:#0e7490}
.badge-active{background:#dcfce7;color:#15803d}
.badge-completed{background:#bbf7d0;color:#166534}
.badge-cancelled{background:#fee2e2;color:#b91c1c}
.badge-status-draft{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}
.badge-status-sent{background:#dbeafe;color:#1d4ed8}
.badge-status-signed{background:#ede9fe;color:#6d28d9}
.badge-status-active{background:#dcfce7;color:#15803d}
.badge-status-finished{background:#bbf7d0;color:#166534}
.badge-status-cancelled{background:#fee2e2;color:#b91c1c}

/* ── Buttons ───────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.52rem 1rem;border-radius:var(--r);font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all var(--t);white-space:nowrap;text-decoration:none;font-family:inherit}
.btn-primary{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 1px 3px rgba(22,163,74,.3)}
.btn-primary:hover{background:var(--green-dark);border-color:var(--green-dark);box-shadow:0 3px 10px rgba(22,163,74,.4)}
.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-2)}
.btn-secondary:hover{background:var(--surface-3)}
.btn-ghost{background:transparent;color:var(--text-2);border-color:transparent}
.btn-ghost:hover{background:var(--surface-3);color:var(--text)}
.btn-danger{background:#fee2e2;color:var(--red);border-color:#fecaca}
.btn-danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn-full{width:100%}
.btn-sm{padding:.38rem .75rem;font-size:.78rem}
.btn-xs{padding:.2rem .55rem;font-size:.72rem}
.inline-form{display:inline}

/* ── Forms ─────────────────────────────────────────── */
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-label{font-size:.76rem;font-weight:600;color:var(--text)}
.form-label.required::after{content:' *';color:var(--red)}
.form-input,.form-select,.form-textarea{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r);color:var(--text);padding:.6rem .85rem;font-size:.82rem;font-family:inherit;width:100%;outline:none;transition:border-color var(--t),box-shadow var(--t)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-3)}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem;cursor:pointer}
.form-select option{background:var(--surface);color:var(--text)}
.form-textarea{resize:vertical;min-height:88px}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.form-col-2{grid-column:1/-1}
.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}
.sel-sm{width:auto;min-width:140px}
.err-list{padding-left:1.25rem;list-style:disc}
.err-list li{margin-bottom:.15rem;font-size:.8rem}
.field-error{font-size:.75rem;color:var(--red)}
.input-error{border-color:var(--red)!important;box-shadow:0 0 0 3px rgba(220,38,38,.1)!important}

/* ── Alerts ────────────────────────────────────────── */
.alert{padding:.7rem 1rem;border-radius:var(--r);font-size:.82rem;margin-bottom:1rem;border:1px solid}
.alert-success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.alert-danger{background:#fef2f2;border-color:#fecaca;color:#b91c1c}

/* ── Empty State ───────────────────────────────────── */
.empty-state{text-align:center;padding:3rem 2rem;color:var(--text-2)}
.empty-icon{font-size:2.2rem;display:block;margin-bottom:.65rem;opacity:.45}
.empty-state h3{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:.3rem}
.empty-state p{font-size:.8rem;margin-bottom:1rem}
.empty-sm{text-align:center;padding:1.5rem;color:var(--text-3);font-size:.8rem}

/* ── Search & Filters ──────────────────────────────── */
.search-form,.filters-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.search-input{min-width:210px;flex:1}

/* ── Pagination ────────────────────────────────────── */
.pagination{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:1rem}
.page-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 .5rem;border-radius:var(--r);font-size:.78rem;font-weight:500;color:var(--text-2);border:1px solid var(--border);background:var(--surface);transition:all var(--t)}
.page-btn:hover{background:var(--green-ghost);color:var(--green);border-color:#bbf7d0}
.page-btn.active{background:var(--green);color:#fff;border-color:var(--green);font-weight:700}
.page-btn.disabled{opacity:.35;pointer-events:none}
.page-dots{color:var(--text-3);font-size:.78rem;padding:0 .25rem}

/* ── Kanban ────────────────────────────────────────── */
.kanban-board{display:flex;gap:.9rem;overflow-x:auto;padding-bottom:1rem;min-height:calc(100vh - 200px)}
.kanban-col{flex-shrink:0;width:240px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;box-shadow:var(--shadow)}
.kanban-col-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--border);border-top:3px solid transparent;border-top-left-radius:var(--r-lg);border-top-right-radius:var(--r-lg);font-size:.8rem;font-weight:700;color:var(--text)}
.kanban-count{background:var(--surface-3);color:var(--text-2);font-size:.65rem;font-weight:700;padding:.1rem .45rem;border-radius:99px;border:1px solid var(--border)}
.kanban-cards{flex:1;padding:.5rem;display:flex;flex-direction:column;gap:.45rem;overflow-y:auto;min-height:60px;background:var(--surface-2);transition:background var(--t)}
.kanban-cards.drag-over{background:#f0fdf4}
.kanban-empty{text-align:center;color:var(--text-3);font-size:.75rem;padding:1rem}
.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:.75rem;cursor:grab;transition:box-shadow var(--t),transform var(--t),border-color var(--t);box-shadow:var(--shadow)}
.kanban-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);border-color:var(--green)}
.kanban-card.dragging{opacity:.4;cursor:grabbing}
.kcard-title{font-size:.78rem;font-weight:600;color:var(--text);margin-bottom:.2rem}
.kcard-client{font-size:.7rem;color:var(--text-2);margin-bottom:.2rem}
.kcard-value{font-size:.72rem;color:var(--green);font-weight:700}
.kcard-actions{margin-top:.45rem}

/* ── Tags ──────────────────────────────────────────── */
.tag-pill{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:99px;font-size:.7rem;font-weight:600;border:1px solid transparent;margin:.1rem}
.tag-pill.lg{font-size:.78rem;padding:.3rem .8rem}
.tags-picker{display:flex;flex-wrap:wrap;gap:.4rem}
.tag-check{cursor:pointer}
.tag-check input{display:none}
.tag-check input:checked + .tag-pill{box-shadow:0 0 0 2px currentColor}
.tags-grid{display:flex;flex-direction:column;gap:.5rem}
.tag-row{display:flex;align-items:center;gap:.75rem}
.color-swatches{display:flex;gap:.5rem;flex-wrap:wrap}
.swatch-label{cursor:pointer}
.swatch-radio{display:none}
.swatch{display:block;width:24px;height:24px;border-radius:50%;border:2px solid transparent;transition:transform var(--t),box-shadow var(--t)}
.swatch-radio:checked + .swatch{transform:scale(1.25);box-shadow:0 0 0 2px white,0 0 0 4px currentColor}

/* ── Notifications ─────────────────────────────────── */
.notif-list{display:flex;flex-direction:column}
.notif-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);transition:background var(--t)}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:var(--surface-2)}
.notif-item.read{opacity:.65}
.notif-dot-col{width:10px;flex-shrink:0;padding-top:.4rem}
.notif-unread-dot{display:block;width:8px;height:8px;border-radius:50%;background:var(--green)}
.notif-body{flex:1;min-width:0}
.notif-title{font-size:.82rem;font-weight:600;margin-bottom:.15rem;color:var(--text)}
.notif-msg{font-size:.78rem;color:var(--text-2)}
.notif-time{font-size:.7rem;color:var(--text-3);margin-top:.3rem}
.notif-actions{display:flex;gap:.3rem;flex-shrink:0}

/* ── Activity ──────────────────────────────────────── */
.activity-list{display:flex;flex-direction:column}
.activity-item{display:flex;align-items:flex-start;gap:.9rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--border)}
.activity-item:last-child{border-bottom:none}
.activity-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0}
.activity-body{flex:1;min-width:0}
.activity-desc{font-size:.82rem;font-weight:500;color:var(--text)}
.activity-meta{display:flex;gap:.75rem;margin-top:.2rem;font-size:.72rem;color:var(--text-3);flex-wrap:wrap}
.act-user{color:var(--green);font-weight:600}
.activity-time{font-size:.7rem;color:var(--text-3);flex-shrink:0}

/* ── 2FA Setup ─────────────────────────────────────── */
.twofa-setup{display:flex;flex-direction:column;gap:1.5rem}
.twofa-step{display:flex;gap:1rem}
.step-num{width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-weight:700;font-size:.82rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step-body h3{font-size:.9rem;font-weight:700;margin-bottom:.35rem;color:var(--text)}
.step-body p{font-size:.8rem;color:var(--text-2);margin-bottom:.75rem}
.qr-wrap{margin:.75rem 0}
.qr-img{border-radius:var(--r);border:4px solid var(--border);display:block}
.secret-box{display:flex;align-items:center;gap:.5rem;background:var(--surface-3);padding:.6rem .9rem;border-radius:var(--r);font-size:.78rem;margin-top:.5rem;border:1px solid var(--border)}
.secret-label{color:var(--text-2);flex-shrink:0}
.secret-code{font-family:'JetBrains Mono',monospace;color:var(--green-dark);letter-spacing:.05em;word-break:break-all;font-weight:600}
.twofa-status{padding:1rem;border-radius:var(--r);margin-bottom:.5rem}
.twofa-status.active{background:#f0fdf4;border:1px solid #bbf7d0}
.twofa-status.inactive{background:var(--surface-3);border:1px solid var(--border)}
.twofa-badge{font-size:.82rem;font-weight:700;color:var(--green)}
.twofa-badge.off{color:var(--text-3)}
.twofa-status p{font-size:.8rem;color:var(--text-2);margin-top:.3rem}

/* ── File Upload ───────────────────────────────────── */
.upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed var(--border-2);border-radius:var(--r-lg);padding:2rem;cursor:pointer;transition:border-color var(--t),background var(--t)}
.upload-area:hover{border-color:var(--green);background:#f0fdf4}
.upload-input{display:none}
.upload-icon{font-size:2rem}
.upload-label{font-size:.85rem;font-weight:600;color:var(--text)}
.upload-hint{font-size:.75rem;color:var(--text-3)}
.file-attached{display:flex;align-items:center;gap:.9rem;padding:.9rem;background:#f0fdf4;border-radius:var(--r);border:1px solid #bbf7d0}
.file-icon{font-size:1.6rem;flex-shrink:0}
.file-info{flex:1;min-width:0}
.file-info strong{display:block;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.file-info span{font-size:.74rem;color:var(--text-2)}
.file-actions{display:flex;gap:.4rem}

/* ── Profile / Token ───────────────────────────────── */
.token-reveal{font-size:.8rem;word-break:break-all}
.token-code{display:block;margin-top:.5rem;font-family:'JetBrains Mono',monospace;background:var(--surface-3);padding:.6rem;border-radius:var(--r);color:var(--green-dark);font-size:.78rem;letter-spacing:.03em;border:1px solid var(--border);font-weight:600}
.grid-2-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}

/* ── Utilities ─────────────────────────────────────── */
.text-muted{color:var(--text-3)}
.text-sm{font-size:.75rem}

/* ── Responsive ────────────────────────────────────── */
@media (max-width:900px){
  .dashboard-grid{grid-template-columns:1fr}
  .grid-2-col{grid-template-columns:1fr}
}
@media (max-width:768px){
  .sidebar{transform:translateX(-100%);box-shadow:none}
  .sidebar.open{transform:translateX(0);box-shadow:var(--shadow-lg)}
  .sidebar-close{display:block}
  .sidebar-overlay.active{display:block}
  .main-wrapper{margin-left:0}
  .topbar-burger{display:flex}
  .stats-grid{grid-template-columns:1fr 1fr}
  .form-grid-2{grid-template-columns:1fr}
  .form-col-2{grid-column:1}
  .main-content{padding:1rem}
  .kanban-board{padding-bottom:.5rem}
}
@media (max-width:480px){
  .stats-grid{grid-template-columns:1fr}
  .page-header{flex-direction:column;align-items:stretch}
  .page-header .btn{width:100%;justify-content:center}
  .td-actions{flex-direction:column;align-items:flex-end}
}

/* ── Language Switcher ─────────────────────────────── */
.lang-switcher {
  font-size: .75rem;
  font-weight: 600;
  color: var(--text-2);
  padding: .3rem .6rem;
  border-radius: var(--r);
  border: 1px solid var(--border);
  background: var(--surface);
  transition: all var(--t);
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
}
.lang-switcher:hover {
  border-color: var(--green);
  color: var(--green);
  background: var(--green-ghost);
}

/* ── Logo (PNG) ─────────────────────────────────────── */
.sidebar-logo-img {
    height: 40px;
    width: auto;
    object-fit: contain;
    /* White-background JPG on dark sidebar — use rounded white pill */
    background: #fff;
    border-radius: 6px;
    padding: 3px 6px;
    display: block;
}
.auth-logo {
    display: block;
    height: 40px;
    width: auto;
    margin: 0 auto .75rem;
    object-fit: contain;
}
