/*═══ RESET ═══*/
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg-0);color:var(--text-1);min-height:100vh;display:flex;overflow:hidden}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none;outline:none}
input,select,textarea{font-family:inherit;border:none;outline:none;background:none}
ul{list-style:none}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--bg-1)}
::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:var(--radius-full)}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}
*{scrollbar-width:thin;scrollbar-color:var(--bg-3) var(--bg-1)}

/*═══ LOCAL TOKENS ═══*/
:root{
--white:#fff;--bg:var(--bg-0);--bg-alt:var(--bg-1);--bg-card:var(--bg-2);
--ink:var(--text-0);--blue:var(--primary);--blue-light:var(--primary-soft);--blue-dark:var(--primary-hover);
--body:var(--text-2);--muted:var(--text-3);--border:var(--border, #334155);
--success:#10b981;--success-bg:rgba(16,185,129,.12);
--warning:#f59e0b;--warning-bg:rgba(245,158,11,.12);
--danger:#ef4444;--danger-bg:rgba(239,68,68,.12);
--sidebar-bg:rgba(30,41,59,.92);--sidebar-text:var(--text-3);--sidebar-active:#fff;
--shadow-sm:0 1px 3px rgba(0,0,0,.25);
--shadow-md:0 4px 16px rgba(0,0,0,.35);
--shadow-lg:0 8px 32px rgba(0,0,0,.45);
--fast:150ms var(--ease-out);--base:300ms var(--ease-out);--spring:500ms var(--ease-spring);
--glass:rgba(30,41,59,.65);--glass-border:rgba(148,163,184,.12);
}

/*═══ LAYOUT ═══*/
.app{display:flex;width:100vw;height:100vh;overflow:hidden}

/*═══ SIDEBAR ═══*/
.sidebar{
  width:230px;min-width:230px;
  background:var(--sidebar-bg);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-right:1px solid var(--glass-border);
  display:flex;flex-direction:column;height:100vh;
  transition:width var(--base),min-width var(--base);
  z-index:100;
}
.sidebar.collapsed{width:60px;min-width:60px}
.sidebar.collapsed .sidebar-label,.sidebar.collapsed .sidebar-brand-text,.sidebar.collapsed .sidebar-bottom-label{display:none}
.sidebar.collapsed .sidebar-brand{justify-content:center;padding:0 8px}
.sidebar.collapsed .sidebar-nav a{justify-content:center;padding:12px 0}
.sidebar.collapsed .sidebar-nav a i{margin-right:0}

.sidebar-brand{
  display:flex;align-items:center;gap:12px;
  padding:20px 20px 28px;
}
.sidebar-brand-icon{
  width:36px;height:36px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border-radius:var(--radius-md);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:14px;flex-shrink:0;
  box-shadow:0 0 16px rgba(59,130,246,.35);
}
.sidebar-brand-text{line-height:1.2}
.sidebar-brand-text .brand-name{font-size:15px;font-weight:700;color:#fff}
.sidebar-brand-text .brand-sub{font-size:10px;color:var(--sidebar-text);letter-spacing:.04em}

.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 10px}
.sidebar-nav a{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;color:var(--sidebar-text);
  font-size:13px;font-weight:500;
  border-radius:var(--radius-md);
  transition:all var(--fast);
}
.sidebar-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.sidebar-nav a.active{
  color:#fff;
  background:linear-gradient(135deg,rgba(59,130,246,.25),rgba(139,92,246,.15));
  border:1px solid rgba(59,130,246,.3);
  box-shadow:0 0 12px rgba(59,130,246,.15);
}
.sidebar-nav a i{width:18px;height:18px;flex-shrink:0}
.sidebar-label{font-size:13px}

.sidebar-bottom{padding:12px 10px;border-top:1px solid var(--glass-border);display:flex;flex-direction:column;gap:2px}
.sidebar-bottom a{
  display:flex;align-items:center;gap:12px;
  padding:10px 14px;color:var(--sidebar-text);
  font-size:13px;font-weight:500;border-radius:var(--radius-md);
  transition:all var(--fast);
}
.sidebar-bottom a:hover{color:#fff;background:rgba(255,255,255,.08)}
.sidebar-bottom a i{width:18px;height:18px;flex-shrink:0}
.sidebar-bottom-label{font-size:13px}

/*═══ MAIN ═══*/
.main-area{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden}

/*═══ TOPBAR ═══*/
.topbar{
  height:56px;
  background:var(--glass);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--glass-border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 28px;flex-shrink:0;
}
.topbar-left{display:flex;align-items:center;gap:16px}
.topbar-breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.topbar-breadcrumb span{color:var(--text-0);font-weight:600}
.topbar-right{display:flex;align-items:center;gap:12px}
.topbar-btn{
  display:flex;align-items:center;gap:6px;
  padding:7px 14px;font-size:12px;font-weight:500;
  color:var(--text-2);background:var(--bg-2);
  border:1px solid var(--glass-border);border-radius:var(--radius-md);
  transition:all var(--fast);
}
.topbar-btn:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-glow)}
.topbar-btn i{width:14px;height:14px}

/*═══ CONTENT SCROLL ═══*/
.content{flex:1;overflow-y:auto;padding:28px;background:#141b2d}

/*═══ PAGE HEADER ═══*/
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.page-header-left{display:flex;align-items:center;gap:14px}
.page-header-left .page-icon{
  width:42px;height:42px;
  background:var(--primary-soft);
  border-radius:var(--radius-md);
  display:flex;align-items:center;justify-content:center;color:var(--primary);
}
.page-header-left .page-icon i{width:20px;height:20px}
.page-title{font-size:24px;font-weight:700;color:var(--text-0)}
.page-count{font-size:13px;color:var(--muted);margin-top:2px}
.btn-primary{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 22px;font-size:13px;font-weight:600;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#fff;border-radius:var(--radius-md);
  transition:all var(--fast);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(59,130,246,.4)}
.btn-primary:active{transform:scale(.97)}
.btn-primary i{width:16px;height:16px}

/*═══ FILTER BAR ═══*/
.filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.search-box{
  display:flex;align-items:center;gap:8px;
  padding:9px 14px;background:var(--bg-2);
  border:1px solid var(--glass-border);border-radius:var(--radius-md);
  min-width:240px;transition:all var(--fast);
}
.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.search-box i{width:16px;height:16px;color:var(--muted)}
.search-box input{font-size:13px;color:var(--text-0);width:100%;background:transparent}
.search-box input::placeholder{color:var(--text-3)}
.filter-chip{
  padding:7px 16px;font-size:12px;font-weight:600;
  background:var(--bg-2);color:var(--text-2);
  border:1px solid var(--glass-border);border-radius:var(--radius-full);
  transition:all var(--fast);
}
.filter-chip:hover{border-color:var(--primary);color:var(--primary)}
.filter-chip.active{
  background:var(--primary-soft);color:var(--primary);
  border-color:var(--primary);box-shadow:0 0 12px rgba(59,130,246,.2);
}

/*═══ PROJECT CARDS ═══*/
.project-card{
  background:var(--bg-2);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  margin-bottom:8px;
  transition:all var(--base);
  overflow:hidden;
}
.project-card:hover{border-color:rgba(59,130,246,.25);box-shadow:0 4px 20px rgba(0,0,0,.3)}
.project-card:active{transform:scale(.998)}

.pc-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;cursor:pointer;transition:background var(--fast);
}
.pc-header:hover{background:rgba(255,255,255,.03)}
.pc-left{display:flex;align-items:center;gap:16px;flex:1;min-width:0}
.pc-ids{display:flex;align-items:center;gap:10px;flex-shrink:0}
.pc-dos{font-size:12px;font-weight:700;color:var(--text-0)}
.pc-dev{font-size:11px;color:var(--muted)}
.pc-badges{display:flex;gap:6px;flex-shrink:0}
.badge{
  padding:3px 10px;font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;
  border-radius:var(--radius-full);
}
.badge-status{background:var(--primary-soft);color:var(--primary)}
.badge-phase{background:var(--bg-3);color:var(--text-1)}
.badge-modif{background:var(--danger-bg);color:var(--danger)}
.pc-name{font-size:15px;font-weight:700;color:var(--text-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.pc-actions{display:flex;gap:6px}
.btn-outline{
  padding:7px 16px;font-size:12px;font-weight:600;
  color:var(--text-2);border:1px solid var(--glass-border);
  border-radius:var(--radius-md);transition:all var(--fast);
}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-see{
  display:flex;align-items:center;gap:6px;
  padding:7px 16px;font-size:12px;font-weight:600;
  color:var(--primary);border-radius:var(--radius-md);
  transition:all var(--fast);
}
.btn-see:hover{background:var(--primary-soft)}
.btn-see i{width:14px;height:14px}

.pc-body{
  max-height:0;overflow:hidden;
  transition:max-height 400ms cubic-bezier(.4,0,.2,1),padding 300ms ease;
  border-top:0 solid var(--glass-border);padding:0 20px;
}
.project-card.expanded .pc-body{
  max-height:600px;border-top-width:1px;padding:20px;
}

.pc-detail-row{display:flex;gap:24px;margin-bottom:16px}
.pc-subtitle{font-size:13px;color:var(--text-2);margin-bottom:16px}

/* Phase stepper */
.phase-stepper{display:flex;align-items:center;gap:0;margin-bottom:16px;overflow-x:auto;padding-bottom:4px}
.ps-step{display:flex;align-items:center}
.ps-node{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:80px}
.ps-circle{
  width:32px;height:32px;border-radius:var(--radius-full);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:var(--muted);
  background:var(--bg-3);border:2px solid var(--glass-border);
  transition:all var(--base);
}
.ps-circle i{width:16px;height:16px}
.ps-step.done .ps-circle{
  background:linear-gradient(135deg,#10b981,#059669);
  border-color:#10b981;color:#fff;
  box-shadow:0 0 12px rgba(16,185,129,.35);
}
.ps-step.active .ps-circle{
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border-color:var(--primary);color:#fff;
  box-shadow:0 0 14px rgba(59,130,246,.4);
  animation:stepPulse 2.5s ease-in-out infinite;
}
@keyframes stepPulse{0%,100%{box-shadow:0 0 14px rgba(59,130,246,.4)}50%{box-shadow:0 0 22px rgba(59,130,246,.6)}}
.ps-label{font-size:10px;font-weight:600;color:var(--muted);text-align:center;max-width:90px}
.ps-step.done .ps-label{color:var(--success)}
.ps-step.active .ps-label{color:var(--primary)}
.ps-connector{width:28px;height:2px;background:var(--bg-3);margin-bottom:22px;border-radius:var(--radius-full)}
.ps-step.done+.ps-step .ps-connector{background:var(--success)}
.ps-step.done .ps-connector{background:var(--success)}

.pc-meta{display:flex;align-items:center;gap:20px;font-size:12px;color:var(--text-2)}
.pc-meta-item{display:flex;align-items:center;gap:6px}
.pc-meta-item i{width:14px;height:14px;color:var(--muted)}
.pc-meta-item strong{font-weight:600;color:var(--text-0)}

.pc-expand-icon{transition:transform var(--base);color:var(--muted)}
.project-card.expanded .pc-expand-icon{transform:rotate(180deg)}

/*═══ DASHBOARD ═══*/
.dash-section{margin-bottom:32px}
.dash-section h2{font-size:18px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:10px;color:var(--text-0)}
.dash-section h2 i{width:20px;height:20px;color:var(--primary)}
.dash-section .subtitle{font-size:13px;color:var(--text-2);margin-top:2px;margin-bottom:16px}

.task-row{
  display:flex;align-items:center;gap:14px;
  padding:14px 18px;background:var(--bg-2);
  border:1px solid var(--glass-border);border-radius:var(--radius-md);
  margin-bottom:6px;
  transition:all var(--base);animation:slideIn .3s var(--ease-out) forwards;
}
.task-row:hover{border-color:rgba(59,130,246,.25);box-shadow:0 4px 16px rgba(0,0,0,.25);transform:translateY(-1px)}
@keyframes slideIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-50px)}}
.task-row.removing{animation:slideOut .3s ease forwards}

.tr-project{min-width:180px}
.tr-project .tr-id{font-size:11px;font-weight:700;color:var(--primary)}
.tr-project .tr-client{font-size:13px;font-weight:600;margin-top:1px;color:var(--text-1)}
.tr-phase{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);min-width:90px}
.tr-name{flex:1;font-size:13px;font-weight:500;color:var(--text-1)}
.tr-due{min-width:100px;text-align:right}
.tr-due .due-date{font-size:11px;color:var(--muted)}
.tr-due .countdown{font-size:11px;font-weight:700;margin-top:1px}
.tr-assignee{min-width:110px;font-size:12px;font-weight:600}
.countdown.danger{color:var(--danger)}
.countdown.warning{color:var(--warning)}
.countdown.success{color:var(--success)}

.pointer-wrap{position:relative}
.btn-pointer{
  padding:8px 16px;font-size:11px;font-weight:700;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#0f172a;border-radius:var(--radius-md);
  transition:all var(--fast);
}
.btn-pointer:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(59,130,246,.35)}
.pointer-dd{
  position:fixed;
  background:var(--bg-1);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-lg);border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  min-width:250px;z-index:9000;display:none;overflow:hidden;
}
.pointer-dd.open{display:block}
.pointer-dd button{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:11px 16px;font-size:12px;color:var(--text-2);
  transition:background var(--fast);border-bottom:1px solid var(--glass-border);
}
.pointer-dd button:last-child{border-bottom:none}
.pointer-dd button:hover{background:rgba(255,255,255,.05)}
.pointer-dd button .dd-icon{font-size:15px;width:20px;text-align:center}
.pointer-dd button .dd-text{font-weight:500;color:var(--text-0)}
.pointer-dd button .dd-sub{font-size:10px;color:var(--muted);margin-top:1px}
.pointer-dd button[disabled]{opacity:.35;pointer-events:none}

/* Inline form */
.iform{padding:12px 16px;background:var(--bg-1);display:none;border-radius:var(--radius-md)}
.iform.open{display:block}
.iform input,.iform textarea{
  width:100%;padding:8px 10px;font-size:12px;
  border:1px solid var(--glass-border);background:var(--bg-2);
  color:var(--text-1);border-radius:var(--radius-sm);margin-bottom:6px;
}
.iform textarea{height:50px;resize:vertical}
.iform .irow{display:flex;gap:6px;justify-content:flex-end}
.ibtn{padding:6px 14px;font-size:11px;font-weight:600;background:var(--primary);color:#fff;border-radius:var(--radius-md)}
.ibtn:hover{background:var(--primary-hover)}
.ibtn-cancel{background:transparent;color:var(--text-2)}

/* Summary rows */
.summary-row{
  display:flex;align-items:center;gap:14px;
  padding:10px 18px;background:var(--bg-2);
  border:1px solid var(--glass-border);border-radius:var(--radius-md);
  margin-bottom:4px;
  cursor:pointer;transition:all var(--fast);
}
.summary-row:hover{border-color:rgba(59,130,246,.2);box-shadow:0 2px 12px rgba(0,0,0,.2)}
.sr-id{font-size:12px;font-weight:700;color:var(--primary);min-width:130px}
.sr-name{flex:1;font-size:13px;font-weight:600;color:var(--text-1)}
.sr-badge{padding:3px 10px;font-size:10px;font-weight:600;background:var(--primary-soft);color:var(--primary);border-radius:var(--radius-full)}
.sr-progress{min-width:120px;display:flex;align-items:center;gap:8px}
.sr-bar{flex:1;height:6px;background:#475569;overflow:hidden;border-radius:var(--radius-full)}
.sr-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:var(--radius-full);transition:width var(--base)}
.sr-pct{font-size:11px;font-weight:600;color:var(--text-2)}
.sr-count{font-size:11px;color:var(--muted);min-width:80px;text-align:right}
.sr-expand{color:var(--primary);font-size:11px;font-weight:600;display:flex;align-items:center;gap:4px}
.sr-expand i{width:14px;height:14px;transition:transform var(--base)}
.sr-accordion{max-height:0;overflow:hidden;transition:max-height .4s ease;background:var(--bg-1);border-radius:0 0 var(--radius-md) var(--radius-md)}
.sr-accordion.open{max-height:800px}
.sr-accordion-inner{padding:16px 20px}
.sr-phase-group{margin-bottom:12px}
.sr-phase-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--glass-border)}
.sr-task{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:12px}
.sr-task .t-name{flex:1;font-weight:500;color:var(--text-1)}
.sr-task .t-role{color:var(--muted);min-width:90px}
.sr-task .t-date{color:var(--muted);min-width:70px;text-align:right}
.sr-acc-link{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:10px;padding:8px 16px;font-size:12px;font-weight:600;
  color:var(--primary);background:var(--primary-soft);
  border-radius:var(--radius-md);transition:all var(--fast);
}
.sr-acc-link:hover{background:rgba(59,130,246,.25)}

/*═══ STATUS CHIPS ═══*/
.chip{
  display:inline-flex;align-items:center;
  padding:3px 10px;font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;
  border-left:3px solid;border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.chip-todo{border-color:var(--muted);background:var(--bg-3);color:var(--text-2)}
.chip-progress{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.chip-done{border-color:var(--success);background:var(--success-bg);color:#34d399}
.chip-blocked{border-color:var(--danger);background:var(--danger-bg);color:#f87171}
.chip-extended{border-color:var(--warning);background:var(--warning-bg);color:#fbbf24}

/*═══ PROJECT DETAIL ═══*/
.detail-hero{
  background:var(--bg-2);padding:28px;
  border:1px solid var(--glass-border);border-radius:var(--radius-lg);
  margin-bottom:16px;
  background-image:radial-gradient(ellipse at top right,rgba(59,130,246,.08),transparent 60%);
}
.detail-back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);margin-bottom:18px;transition:color var(--fast);border-radius:var(--radius-md);padding:4px 8px;margin-left:-8px}
.detail-back:hover{color:var(--primary);background:var(--primary-soft)}
.detail-back i{width:14px;height:14px}
.detail-id{font-size:13px;font-weight:700;color:var(--primary);margin-bottom:4px}
.detail-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.detail-title{font-size:26px;font-weight:700;color:var(--text-0)}
.detail-meta{display:flex;gap:20px;font-size:12px;color:var(--text-2);margin-top:10px;flex-wrap:wrap}
.detail-meta-item{display:flex;align-items:center;gap:6px}
.detail-meta-item strong{font-weight:600;color:var(--text-0)}

.detail-grid{display:grid;grid-template-columns:5fr 3fr;gap:16px}
.detail-card{
  background:var(--bg-2);border:1px solid var(--glass-border);
  padding:20px;margin-bottom:12px;border-radius:var(--radius-lg);
  transition:border-color var(--fast);
}
.detail-card:hover{border-color:rgba(59,130,246,.2)}
.detail-card h3{font-size:14px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px;color:var(--text-0)}
.detail-card h3 i{width:16px;height:16px;color:var(--primary)}

.dt-task{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--glass-border)}
.dt-task:last-child{border-bottom:none}
.dt-task .t-name{flex:1;font-size:13px;font-weight:500;color:var(--text-1)}
.dt-task .t-role{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;min-width:90px}
.dt-task .t-due{font-size:12px;color:var(--text-2);min-width:80px;text-align:right}

.fin-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--glass-border);font-size:13px}
.fin-row:last-child{border-bottom:none}
.fin-label{color:var(--text-2)}
.fin-value{font-weight:700;color:var(--text-0)}

.act-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--glass-border)}
.act-item:last-child{border-bottom:none}
.act-dot{width:8px;height:8px;background:var(--primary);border-radius:var(--radius-full);margin-top:4px;flex-shrink:0;box-shadow:0 0 8px rgba(59,130,246,.4)}
.act-text{font-size:12px;color:var(--text-1)}
.act-time{font-size:10px;color:var(--muted);margin-top:2px}

.modif-item{padding:10px 0;border-bottom:1px solid var(--glass-border)}
.modif-item:last-child{border-bottom:none}
.modif-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.modif-rev{font-size:12px;font-weight:700;color:var(--danger)}
.modif-date{font-size:10px;color:var(--muted)}
.modif-desc{font-size:12px;color:var(--text-2)}
.modif-status{font-size:10px;font-weight:700;margin-top:3px}

.comment-box{margin-top:12px}
.comment-row{display:flex;gap:8px}
.comment-row input{
  flex:1;padding:9px 12px;font-size:12px;
  border:1px solid var(--glass-border);background:var(--bg-1);
  color:var(--text-1);border-radius:var(--radius-md);
}
.comment-row input::placeholder{color:var(--text-3)}
.comment-row button{
  padding:9px 18px;font-size:12px;font-weight:600;
  background:var(--primary);color:#fff;border-radius:var(--radius-md);
  transition:all var(--fast);
}
.comment-row button:hover{background:var(--primary-hover)}

.btn-danger{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 18px;font-size:12px;font-weight:600;
  background:var(--danger);color:#fff;border-radius:var(--radius-md);
  transition:all var(--fast);
}
.btn-danger:hover{background:#dc2626;box-shadow:0 4px 16px rgba(239,68,68,.3)}
.btn-danger i{width:14px;height:14px}

/*═══ TASKS PAGE ═══*/
.tasks-table{width:100%;background:var(--bg-2);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden}
.tasks-table th{
  padding:10px 14px;font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;color:var(--muted);
  background:var(--bg-1);text-align:left;border-bottom:1px solid var(--glass-border);
}
.tasks-table td{
  padding:12px 14px;font-size:13px;border-bottom:1px solid var(--glass-border);
  color:var(--text-1);
}
.tasks-table tr:hover td{background:rgba(255,255,255,.03)}
.tasks-table .t-proj{font-weight:600;color:var(--primary);font-size:12px}

/*═══ TABLEAU COMMUN ═══*/
.tc-table{width:100%;border-collapse:collapse;font-size:12px}
.tc-table thead th{padding:8px 6px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--bg-1);text-align:center;border-bottom:2px solid var(--glass-border);white-space:nowrap}
.tc-ph{min-width:44px}
.tc-row{cursor:pointer;transition:background var(--fast)}
.tc-row:hover td{background:rgba(255,255,255,.03)}
.tc-row.expanded td{background:var(--primary-soft)}
.tc-row td{padding:7px 8px;border-bottom:1px solid var(--glass-border);white-space:nowrap;color:var(--text-1)}
.tc-id{font-weight:700;color:var(--primary)!important;font-size:11px}.tc-id:hover{text-decoration:underline}
.tc-cl{font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis}
.tc-nm{font-weight:500;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.tc-ppl{font-size:11px;min-width:80px}
.tc-cell{text-align:center!important;font-size:14px;padding:7px 2px!important}
.tc-ico{font-weight:700}.tc-done{color:var(--success)}.tc-act{color:var(--primary)}.tc-blk{color:var(--danger)}.tc-wait{color:var(--text-4)}
.tc-pct{text-align:center!important;font-size:11px;font-weight:600;color:var(--text-2);min-width:56px}
.tc-bar{height:6px;background:#475569;margin-bottom:2px;overflow:hidden;border-radius:var(--radius-full)}
.tc-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:var(--radius-full)}
.tc-chev{transition:transform var(--base)}.tc-row.expanded .tc-chev{transform:rotate(180deg)}
.tc-xrow td{padding:0!important;background:var(--bg-1)!important;border-bottom:1px solid var(--glass-border)}
.tc-xinner{padding:16px 20px}
.tc-xmeta{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.tc-xgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.tc-ph-box{background:var(--bg-2);border:1px solid var(--glass-border);padding:8px 10px;border-radius:var(--radius-md)}
.tc-ph-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--glass-border)}
.tc-tk{display:flex;align-items:center;gap:5px;padding:3px 0;font-size:11px}
.tc-tk-i{width:14px;text-align:center;flex-shrink:0;font-weight:700}
.tc-tk-n{flex:1;font-weight:500;color:var(--text-1)}.tc-tk-w{font-size:10px;min-width:50px}
.tc-tk-d{font-size:10px;color:var(--muted)}
.tc-tk.tc-active{background:rgba(16,185,129,.15);border-radius:var(--radius-sm);animation:tcPulse 2s ease-in-out infinite}
.tc-ph-box.tc-ph-active{border-color:var(--success);border-left:3px solid var(--success)}
@keyframes tcPulse{0%,100%{background:rgba(16,185,129,.15)}50%{background:rgba(16,185,129,.25)}}
.tc-who{font-size:11px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-who-name{font-weight:600;color:var(--text-1)}.tc-who-task{color:var(--muted);font-size:10px}

/*═══ SORTABLE HEADERS ═══*/
.tc-sortable{cursor:pointer;user-select:none;transition:color var(--fast);white-space:nowrap}
.tc-sortable:hover{color:var(--primary)}
.tc-sortable i{vertical-align:middle;display:inline-block}

/*═══ GEAR DROPDOWN (project actions) ═══*/
.tc-xactions{display:flex;align-items:center;gap:8px;margin-top:12px}
.tc-gear-wrap{position:relative}
.tc-gear-btn{
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  color:var(--text-3);border-radius:var(--radius-md);
  transition:all var(--fast);
}
.tc-gear-btn:hover{color:var(--text-0);background:rgba(255,255,255,.08)}
.tc-gear-btn:hover i{animation:gearSpin .6s var(--ease-out)}
@keyframes gearSpin{from{transform:rotate(0deg)}to{transform:rotate(90deg)}}
.tc-gear-dd{
  position:fixed;
  background:var(--bg-1);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-lg);border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  min-width:180px;z-index:9000;display:none;overflow:hidden;
}
.tc-gear-dd.open{display:block}
.tc-gear-dd button{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:10px 14px;font-size:12px;font-weight:500;color:var(--text-1);
  transition:background var(--fast);border-bottom:1px solid var(--glass-border);
}
.tc-gear-dd button:last-child{border-bottom:none}
.tc-gear-dd button:hover{background:rgba(255,255,255,.06)}
.tc-gear-dd button i{color:var(--text-3)}
.tc-gear-dd button.tc-gear-danger{color:var(--danger)}
.tc-gear-dd button.tc-gear-danger i{color:var(--danger)}
.tc-gear-dd button.tc-gear-danger:hover{background:rgba(239,68,68,.1)}

/*═══ SETTINGS ═══*/
.settings-section{margin-bottom:28px}
.settings-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}
.settings-row{display:flex;gap:10px;flex-wrap:wrap}
.btn-setting{
  padding:9px 22px;font-size:13px;font-weight:600;
  background:var(--primary);color:#fff;border-radius:var(--radius-md);
  transition:all var(--fast);
}
.btn-setting:hover{background:var(--primary-hover);transform:translateY(-1px)}
.btn-setting.outline{background:transparent;color:var(--text-1);border:1px solid var(--glass-border)}
.btn-setting.outline:hover{border-color:var(--primary);color:var(--primary)}
.role-chip{
  padding:8px 16px;font-size:12px;font-weight:500;
  background:var(--bg-2);border:1px solid var(--glass-border);
  border-radius:var(--radius-full);
  cursor:pointer;transition:all var(--fast);
}
.role-chip:hover{border-color:var(--primary);color:var(--primary)}
.role-chip.active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary);box-shadow:0 0 12px rgba(59,130,246,.2)}

/*═══ DOCUMENTS PAGE ═══*/
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.doc-card{
  background:var(--bg-2);border:1px solid var(--glass-border);
  padding:18px;border-radius:var(--radius-lg);transition:all var(--fast);
}
.doc-card:hover{border-color:rgba(59,130,246,.25);box-shadow:0 4px 16px rgba(0,0,0,.25);transform:translateY(-2px)}
.doc-card .doc-icon{
  width:40px;height:40px;background:var(--primary-soft);
  border-radius:var(--radius-md);
  display:flex;align-items:center;justify-content:center;margin-bottom:10px;color:var(--primary);
}
.doc-card .doc-icon i{width:20px;height:20px}
.doc-card .doc-name{font-size:13px;font-weight:600;margin-bottom:4px;color:var(--text-0)}
.doc-card .doc-meta{font-size:11px;color:var(--muted)}

/*═══ VALIDATIONS PAGE ═══*/
.val-item{
  display:flex;align-items:center;gap:14px;
  padding:14px 18px;background:var(--bg-2);
  border:1px solid var(--glass-border);border-radius:var(--radius-md);
  margin-bottom:6px;transition:all var(--fast);
}
.val-item:hover{border-color:rgba(59,130,246,.2);box-shadow:0 2px 12px rgba(0,0,0,.2)}
.val-item .v-project{min-width:140px;font-size:12px;font-weight:700;color:var(--primary)}
.val-item .v-task{flex:1;font-size:13px;font-weight:500;color:var(--text-1)}
.val-item .v-phase{font-size:10px;color:var(--muted);text-transform:uppercase;min-width:80px}
.val-item .v-date{font-size:12px;color:var(--text-2);min-width:80px;text-align:right}
.val-actions{display:flex;gap:6px}
.btn-approve{padding:6px 14px;font-size:11px;font-weight:600;background:var(--success);color:#fff;border-radius:var(--radius-md);transition:all var(--fast)}
.btn-approve:hover{background:#059669;box-shadow:0 4px 12px rgba(16,185,129,.3)}
.btn-reject{padding:6px 14px;font-size:11px;font-weight:600;background:var(--danger);color:#fff;border-radius:var(--radius-md);transition:all var(--fast)}
.btn-reject:hover{background:#dc2626;box-shadow:0 4px 12px rgba(239,68,68,.3)}

/*═══ FLOATING WIDGET ═══*/
.widget-collapsed{
  position:fixed;bottom:20px;right:20px;z-index:9999;
  background:var(--bg-2);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:var(--shadow-lg);border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  height:44px;display:flex;align-items:center;gap:10px;
  padding:0 14px;cursor:pointer;transition:all var(--fast);
}
.widget-collapsed:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,.4);border-color:rgba(59,130,246,.3)}
.widget-dot{width:10px;height:10px;flex-shrink:0;border-radius:var(--radius-full)}
.widget-dot.urgent{background:var(--danger);box-shadow:0 0 8px rgba(239,68,68,.5)}
.widget-dot.ok{background:var(--success);box-shadow:0 0 8px rgba(16,185,129,.5)}
.widget-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.widget-count{font-size:13px;font-weight:700;color:var(--text-0)}

.widget-panel{
  position:fixed;bottom:20px;right:20px;z-index:9999;
  width:350px;max-height:420px;background:var(--bg-1);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-lg);border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  display:none;flex-direction:column;
  transform:translateY(16px);opacity:0;
  transition:transform var(--spring),opacity .25s ease;
}
.widget-panel.open{display:flex;transform:translateY(0);opacity:1}
.wp-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--glass-border)}
.wp-header h3{font-size:14px;font-weight:700;color:var(--text-0)}
.wp-close{color:var(--muted);transition:color var(--fast)}
.wp-close:hover{color:var(--text-0)}
.wp-close i{width:16px;height:16px}
.wp-list{flex:1;overflow-y:auto;padding:4px 0}
.wp-item{
  display:flex;align-items:center;gap:10px;padding:9px 18px;
  cursor:pointer;transition:background var(--fast);
}
.wp-item:hover{background:rgba(255,255,255,.04)}
.wp-bar{width:3px;height:28px;flex-shrink:0;border-radius:var(--radius-full)}
.wp-bar.red{background:var(--danger)}
.wp-bar.orange{background:var(--warning)}
.wp-bar.green{background:var(--success)}
.wp-info{flex:1;min-width:0}
.wp-proj{font-size:10px;font-weight:700;color:var(--primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wp-task{font-size:12px;font-weight:500;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wp-meta{font-size:9px;color:var(--muted);margin-top:1px}
.wp-cd{font-size:11px;font-weight:700;min-width:40px;text-align:right}

/*═══ MODALS ═══*/
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:8000;
  display:none;align-items:center;justify-content:center;
}
.modal-overlay.open{display:flex}
.modal{
  background:var(--bg-1);
  box-shadow:0 24px 80px rgba(0,0,0,.5);border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  width:480px;max-width:92vw;max-height:80vh;overflow-y:auto;
}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--glass-border)}
.modal-head h3{font-size:16px;font-weight:700;color:var(--text-0)}
.modal-close{color:var(--muted);border-radius:var(--radius-md);padding:4px;transition:all var(--fast)}
.modal-close:hover{color:var(--text-0);background:rgba(255,255,255,.08)}
.modal-close i{width:16px;height:16px}
.modal-body{padding:24px}
.modal-body label{display:block;font-size:12px;font-weight:600;margin-bottom:5px;color:var(--text-2)}
.modal-body input,.modal-body textarea,.modal-body select{
  width:100%;padding:10px 12px;font-size:13px;
  border:1px solid var(--glass-border);background:var(--bg-2);
  color:var(--text-1);border-radius:var(--radius-md);margin-bottom:14px;
  transition:border-color var(--fast);
}
.modal-body input:focus,.modal-body textarea:focus,.modal-body select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.modal-body input::placeholder,.modal-body textarea::placeholder{color:var(--text-3)}
.modal-body textarea{height:70px;resize:vertical}
.modal-body select{appearance:auto}
.modal-body select option{background:var(--bg-2);color:var(--text-1)}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--glass-border)}
.modal-foot .btn{padding:9px 22px;font-size:13px;font-weight:600;border-radius:var(--radius-md);transition:all var(--fast)}
.modal-foot .btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff}
.modal-foot .btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(59,130,246,.35)}
.modal-foot .btn-cancel{color:var(--text-2)}
.modal-foot .btn-cancel:hover{color:var(--text-0);background:rgba(255,255,255,.06);border-radius:var(--radius-md)}

/*═══ EMPTY ═══*/
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;text-align:center}
.empty svg{margin-bottom:16px;color:var(--text-3)}
.empty .empty-t{font-size:16px;font-weight:600;margin-bottom:4px;color:var(--text-0)}
.empty .empty-s{font-size:12px;color:var(--muted)}

.hidden{display:none!important}
.import-input{display:none}

/*═══ DEPARTMENT TAGS ═══*/
.tr-dept-tag,.dt-dept,.val-dept,.tc-tk-dept{
  padding:2px 8px;font-size:9px;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
  border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;
}
.tr-step,.dt-step{
  font-size:10px;font-weight:700;color:var(--muted);
  min-width:36px;text-align:center;flex-shrink:0;
  font-family:'JetBrains Mono',monospace;
}

/*═══ TASK LOCKING ═══*/
.task-locked,.dt-locked,.tc-locked,.val-locked{opacity:.45;pointer-events:none;filter:grayscale(.4)}
.task-locked .btn-pointer,.dt-locked .dt-actions,.tc-locked .tc-act-btns,.val-locked .val-actions button{pointer-events:auto;opacity:1}
.btn-locked{
  background:var(--bg-3)!important;color:var(--muted)!important;
  cursor:not-allowed!important;pointer-events:auto!important;
  font-size:11px;padding:8px 14px;border-radius:var(--radius-md);
}
.dt-lock,.tc-lock,.val-lock{
  font-size:14px;color:var(--muted);pointer-events:auto;opacity:1;
  filter:none;cursor:not-allowed;
}
.val-lock{font-size:11px;font-weight:600;display:inline-flex;align-items:center;gap:4px;padding:6px 14px;background:var(--bg-3);border-radius:var(--radius-md);color:var(--muted)}

/*═══ DETAIL TASK ACTIONS ═══*/
.dt-task{position:relative;flex-wrap:nowrap}
.dt-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}
.dt-act-btn{
  width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  font-size:14px;border-radius:var(--radius-sm);
  transition:all var(--fast);cursor:pointer;background:transparent;
}
.dt-act-btn:hover{background:rgba(255,255,255,.08);transform:scale(1.15)}
.dt-done-check{font-size:14px;opacity:.5}

/*═══ DETAIL COLLAPSIBLE PHASES ═══*/
.dt-phase-group{border:1px solid var(--glass-border);margin-bottom:8px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-2)}
.dt-phase-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;background:var(--bg-1);user-select:none;transition:background var(--fast)}
.dt-phase-head:hover{background:rgba(255,255,255,.04)}
.dt-phase-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-1);flex:1}
.dt-phase-count{font-size:11px;color:var(--muted);font-weight:500;font-family:'JetBrains Mono',monospace}
.dt-phase-chev{transition:transform .2s ease;flex-shrink:0}
.dt-phase-body{max-height:0;overflow:hidden;transition:max-height .3s ease}
.dt-phase-body.open{max-height:2000px}
.dt-phase-body .dt-task{padding:8px 14px}
.dt-task .t-who{font-size:11px;font-weight:600;min-width:80px;flex-shrink:0}

/*═══ TC (PROJECTS PAGE) ACTION BUTTONS ═══*/
.tc-act-btns{display:flex;align-items:center;gap:2px;margin-left:auto;flex-shrink:0}
.tc-abtn{
  width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;border-radius:var(--radius-sm);
  transition:all var(--fast);cursor:pointer;background:transparent;
}
.tc-abtn:hover{background:rgba(255,255,255,.08);transform:scale(1.15)}
.tc-tk-dept{font-size:8px;padding:1px 5px;margin-right:2px}

/*═══ SHEETS ═══*/
.sheet{background:var(--bg-2);border:1px solid var(--glass-border);margin-bottom:16px;overflow:visible;border-radius:var(--radius-lg)}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--glass-border);background:var(--bg-1)}
.sheet-head h3{font-size:12px;font-weight:700;display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}
.sheet-head h3 i{width:16px;height:16px;color:var(--primary)}
.sheet-head .sheet-badge{font-size:11px;color:var(--muted);font-weight:500;background:var(--bg-3);padding:3px 10px;border-radius:var(--radius-full)}
.sheet-body{padding:16px 20px}
.sheet-body.flush{padding:0}

/*═══ PEOPLE COLORS ═══*/
.ptag{font-weight:600}
.people-grid{display:flex;flex-wrap:wrap;gap:10px}
.people-card{
  display:flex;align-items:center;gap:10px;padding:10px 16px;
  background:var(--bg-2);border:1px solid var(--glass-border);
  border-radius:var(--radius-md);min-width:200px;transition:all var(--fast);
}
.people-card:hover{border-color:rgba(59,130,246,.2);box-shadow:0 2px 12px rgba(0,0,0,.2)}
.people-swatch{width:26px;height:26px;flex-shrink:0;cursor:pointer;position:relative;border:2px solid var(--glass-border);border-radius:var(--radius-sm)}
.people-swatch input[type=color]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.people-card-name{font-size:13px;font-weight:600;flex:1;color:var(--text-1)}
.people-card-remove{color:var(--muted);cursor:pointer;transition:color var(--fast);display:flex;align-items:center}
.people-card-remove:hover{color:var(--danger)}
.people-card-remove i{width:14px;height:14px}
.people-add-row{display:flex;gap:8px;margin-top:14px}
.people-add-row input{padding:9px 12px;font-size:13px;border:1px solid var(--glass-border);background:var(--bg-2);color:var(--text-1);flex:1;max-width:220px;border-radius:var(--radius-md)}
.people-add-row input::placeholder{color:var(--text-3)}
.people-add-row button{padding:9px 18px;font-size:12px;font-weight:600;background:var(--primary);color:#fff;border-radius:var(--radius-md);transition:all var(--fast)}
.people-add-row button:hover{background:var(--primary-hover)}

/*═══ TOOLTIPS ═══*/
.tip{position:relative;cursor:pointer;z-index:auto}
.tip .tiptext{
  visibility:hidden;opacity:0;position:fixed;z-index:999999;
  background:var(--bg-1);color:var(--text-1);font-size:11px;font-weight:500;
  padding:8px 12px;pointer-events:none;border-radius:var(--radius-md);
  border:1px solid var(--glass-border);
  transition:opacity .15s ease,visibility .15s ease;
  box-shadow:var(--shadow-lg);
  max-width:280px;white-space:normal;line-height:1.45;
}
.tip .tiptext::after{display:none}
.tip:hover .tiptext{visibility:visible;opacity:1}
.phase-stepper{overflow:visible}
.ps-step{overflow:visible}

/*═══ PERSON PILLS ═══*/
.pc-people{display:flex;align-items:center;gap:6px;margin-left:10px;flex-shrink:0}
.pc-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:10px;font-weight:600;color:#fff;white-space:nowrap;border-radius:var(--radius-full)}
.pc-pill i{width:12px;height:12px}
.pc-pill-label{display:none}

/*═══ BIBLIOTHÈQUE PRODUITS ═══*/
.prod-table{width:100%;border-collapse:collapse}
.prod-table th{padding:10px 12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--bg-1);text-align:left;border-bottom:1px solid var(--glass-border)}
.prod-table td{padding:10px 12px;font-size:12px;border-bottom:1px solid var(--glass-border);color:var(--text-1)}
.prod-table tr:hover td{background:rgba(255,255,255,.03)}
.prod-ref{font-weight:700;color:var(--primary);font-size:11px}
.prod-prix{font-weight:700;text-align:right;color:var(--text-0)}
.prod-add-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding:14px;background:var(--bg-1);border:1px solid var(--glass-border);border-radius:var(--radius-md)}
.prod-add-form input{padding:8px 10px;font-size:12px;border:1px solid var(--glass-border);background:var(--bg-2);color:var(--text-1);flex:1;min-width:100px;border-radius:var(--radius-sm)}
.prod-add-form input::placeholder{color:var(--text-3)}
.prod-add-form button{padding:8px 16px;font-size:12px;font-weight:600;background:var(--primary);color:#fff;white-space:nowrap;border-radius:var(--radius-md)}
.prod-add-form button:hover{background:var(--primary-hover)}

/*═══ ENHANCED MODAL ═══*/
.modal-lg{width:800px;max-width:95vw}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.modal-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--glass-border)}
.modal-section-title:first-child{margin-top:0}

/*═══ EQUIPMENT INPUT ═══*/
.equip-search-wrap{position:relative}
.equip-search{width:100%;padding:9px 12px;font-size:12px;border:1px solid var(--glass-border);background:var(--bg-2);color:var(--text-1);margin-bottom:0;border-radius:var(--radius-md)}
.equip-search::placeholder{color:var(--text-3)}
.equip-dd{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--bg-1);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);max-height:200px;overflow-y:auto;display:none;border-radius:0 0 var(--radius-md) var(--radius-md)}
.equip-dd.open{display:block}
.equip-dd-item{display:flex;align-items:center;padding:8px 12px;font-size:12px;cursor:pointer;transition:background var(--fast);border-bottom:1px solid var(--glass-border)}
.equip-dd-item:hover{background:rgba(255,255,255,.05)}
.equip-dd-ref{font-weight:700;color:var(--primary);font-size:10px;min-width:90px}
.equip-dd-nom{flex:1;font-weight:500;color:var(--text-1)}
.equip-dd-marque{color:var(--muted);margin:0 8px;font-size:11px}
.equip-dd-prix{font-weight:700;color:var(--text-0);min-width:70px;text-align:right}
.equip-list{margin-top:8px}
.equip-row{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--glass-border);font-size:12px}
.equip-row .e-ref{font-weight:700;color:var(--primary);font-size:10px;min-width:85px}
.equip-row .e-nom{flex:1;font-weight:500;color:var(--text-1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equip-row .e-prix{font-weight:600;min-width:65px;text-align:right;color:var(--text-2)}
.equip-row .e-qte{width:44px;padding:4px 6px;font-size:11px;border:1px solid var(--glass-border);background:var(--bg-2);color:var(--text-1);text-align:center;border-radius:var(--radius-sm)}
.equip-row .e-total{font-weight:700;min-width:75px;text-align:right;color:var(--text-0)}
.equip-row .e-rm{color:var(--muted);cursor:pointer;padding:2px 6px;font-size:14px;transition:color var(--fast)}
.equip-row .e-rm:hover{color:var(--danger)}
.equip-total-row{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:10px 0;font-size:13px;font-weight:700;border-top:2px solid var(--glass-border);margin-top:4px}
.equip-total-label{color:var(--text-2)}
.equip-total-val{font-size:15px;color:var(--text-0)}

/*═══ EQUIPMENT DETAIL ═══*/
.equip-detail-table{width:100%;font-size:12px;border-collapse:collapse}
.equip-detail-table th{padding:8px 10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;border-bottom:1px solid var(--glass-border)}
.equip-detail-table td{padding:8px 10px;border-bottom:1px solid var(--glass-border);color:var(--text-1)}
.equip-detail-table tfoot td{border-top:2px solid var(--glass-border);font-weight:700;font-size:13px;color:var(--text-0)}
