/* ============================================================
   DEFECTS  —  Bug Logging & Defect Management
   ============================================================ */
.def-page{display:flex;flex-direction:column}
.def-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}
.def-header__left{display:flex;flex-direction:column;gap:4px;min-width:0}
.def-title{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}
.def-subtitle{font-size:var(--text-base);color:var(--text-secondary);line-height:1.4}
.def-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}

/* Buttons */
.def-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:8px;
  font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;white-space:nowrap;
  transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.def-btn:hover{background:var(--surface-2);border-color:var(--border-hi);color:var(--text-primary)}
.def-btn svg{width:15px;height:15px;flex:none}
.def-btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}
.def-btn--primary:hover{background: var(--brand-alt);color:#fff}
.def-btn--danger{color:var(--error);border-color:var(--border)}
.def-btn--danger:hover{background:var(--error-bg);border-color:var(--error);color:var(--error)}
.def-btn--ai{background:var(--purple,#7c4dff);border-color:var(--purple,#7c4dff);color:#fff}
.def-btn--ai:hover{filter:brightness(.95);color:#fff}
.def-btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}

/* Metric cards */
.def-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-3);margin-bottom:var(--space-5)}
.def-metric{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}
.def-metric__val{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary);line-height:1.1}
.def-metric__label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.def-metric--open .def-metric__val{color:var(--info)}
.def-metric--prog .def-metric__val{color:var(--warning)}
.def-metric--resolved .def-metric__val{color:var(--success)}
.def-metric--crit .def-metric__val{color:var(--error)}

/* Toolbar */
.def-toolbar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}
.def-search{position:relative;width:240px}
.def-search__icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);display:flex;color:var(--text-muted);pointer-events:none}
.def-search__input{width:100%;height:40px;padding:0 var(--space-3) 0 var(--space-8);background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:var(--text-sm);color:var(--text-primary)}
.def-search__input::placeholder{color:var(--text-muted)}
.def-search__input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted)}
.def-chipfilters{display:flex;align-items:center;gap:4px}
.def-chipfilter{height:34px;padding:0 var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);
  font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--ease)}
.def-chipfilter:hover{border-color:var(--border-hi);color:var(--text-primary)}
.def-chipfilter--active{border-color:var(--brand);color:var(--brand)}
.def-select{height:40px;padding:0 var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:var(--text-sm);color:var(--text-primary);cursor:pointer}
.def-select:focus{outline:none;border-color:var(--brand)}

/* Table */
.def-table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}
.def-thead,.def-row{display:grid;grid-template-columns:92px minmax(0,2.2fr) 108px 118px 1fr 150px 84px;align-items:center;gap:var(--space-3);padding:0 var(--space-5)}
.def-thead{height:44px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.def-th{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.def-th--right{justify-self:end}
.def-rows{display:flex;flex-direction:column}
.def-row{min-height:58px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--duration-fast) var(--ease)}
.def-row:last-child{border-bottom:none}
.def-row:hover{background:var(--surface-2)}
.def-row--selected{background:var(--info-bg)}
.def-cell{min-width:0;font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.def-cell--id{font-family:var(--font-mono,monospace);font-weight:var(--weight-semibold);color:var(--text-primary)}
.def-cell--title{display:flex;align-items:center;gap:var(--space-2);min-width:0}
.def-title-txt{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.def-chip{display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 6px;border-radius:var(--radius-sm);background:var(--surface-0);border:1px solid var(--border);font-size:11px;color:var(--text-muted);flex:none}
.def-chip--run{color:var(--info)}
.def-chip svg{width:11px;height:11px}
.def-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}
.def-iconbtn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--duration-fast) var(--ease)}
.def-iconbtn:hover{background:var(--surface-3,var(--surface-2));color:var(--text-primary);border-color:var(--border)}
.def-iconbtn--del:hover{background:var(--error-bg);color:var(--error);border-color:var(--error)}
.def-iconbtn svg{width:15px;height:15px}

/* Severity + status badges */
.def-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}
.def-badge--sev-crit{background:var(--error-bg);color:var(--error)}
.def-badge--sev-high{background:rgba(255,171,0,.14);color:var(--warning)}
.def-badge--sev-med{background:var(--info-bg);color:var(--info)}
.def-badge--sev-low{background:var(--surface-2);color:var(--text-secondary)}
.def-badge--st-open{background:var(--info-bg);color:var(--info)}
.def-badge--st-prog{background:rgba(255,171,0,.14);color:var(--warning)}
.def-badge--st-resolved{background:rgba(0,230,118,.14);color:var(--success)}
.def-badge--st-closed{background:var(--surface-2);color:var(--text-muted)}

/* Empty state */
.def-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-12) var(--space-4);text-align:center;color:var(--text-muted)}
.def-empty svg{width:40px;height:40px;opacity:.5;margin-bottom:var(--space-2)}
.def-empty__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-secondary)}
.def-empty__desc{font-size:var(--text-sm);color:var(--text-muted);max-width:420px}

/* Drawer */
.def-drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:400}
.def-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,92vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:401;display:flex;flex-direction:column;animation:def-slidein var(--duration-base) var(--ease)}
@keyframes def-slidein{from{transform:translateX(20px);opacity:.6}to{transform:translateX(0);opacity:1}}
.def-drawer__hd{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}
.def-drawer__id{font-family:var(--font-mono,monospace);font-weight:var(--weight-bold);color:var(--text-primary)}
.def-drawer__close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer}
.def-drawer__close:hover{background:var(--surface-2);color:var(--text-primary)}
.def-drawer__body{padding:var(--space-5);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:var(--space-4)}
.def-drawer__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:1.3}
.def-drawer__statusrow{display:flex;align-items:center;gap:var(--space-3)}
.def-select--status{height:36px}
.def-dfields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.def-dfield{display:flex;flex-direction:column;gap:2px;min-width:0}
.def-dfield__label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}
.def-dfield__value{font-size:var(--text-sm);color:var(--text-primary);word-break:break-word}
.def-dblock{display:flex;flex-direction:column;gap:4px}
.def-dblock__label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}
.def-dblock__body{font-family:inherit;font-size:var(--text-sm);color:var(--text-secondary);background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.5}
.def-drawer__actions{display:flex;gap:var(--space-2);margin-top:auto;padding-top:var(--space-3)}

/* Modal */
.def-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:450;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-8) var(--space-4);overflow-y:auto}
.def-modal{width:min(640px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:calc(100vh - var(--space-16));animation:def-modalin var(--duration-base) var(--ease)}
@keyframes def-modalin{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}
.def-modal__hd{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}
.def-modal__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}
.def-modal__close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer}
.def-modal__close:hover{background:var(--surface-2);color:var(--text-primary)}
.def-modal__body{padding:var(--space-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2)}
.def-modal__foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border)}
.def-flabel{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-top:var(--space-1)}
.def-input{width:100%;min-height:40px;padding:var(--space-2) var(--space-3);background:var(--surface-0);border:1px solid var(--border);border-radius:8px;font-size:var(--text-sm);color:var(--text-primary);font-family:inherit}
.def-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted)}
.def-textarea{resize:vertical;line-height:1.5}
.def-frow{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.def-frow>div{display:flex;flex-direction:column;gap:4px;min-width:0}

/* AI draft panel */
.def-aipanel{background:var(--surface-0);border:1px dashed var(--purple,#7c4dff);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-2)}
.def-aipanel__hd{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--purple,#7c4dff)}
.def-aipanel__hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.4;margin:0}
.def-aipanel .def-btn--ai{align-self:flex-start}

/* Toast */
.def-toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%,20px);z-index:600;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:#fff;box-shadow:var(--shadow-md);opacity:0;transition:opacity var(--duration-base) var(--ease),transform var(--duration-base) var(--ease);pointer-events:none}
.def-toast--show{opacity:1;transform:translate(-50%,0)}
.def-toast--success{background:var(--success)}
.def-toast--error{background:var(--error)}

@media(max-width:1100px){
  .def-metrics{grid-template-columns:repeat(2,1fr)}
  .def-thead{display:none}
  .def-row{grid-template-columns:1fr 1fr;row-gap:var(--space-2);padding:var(--space-3) var(--space-4)}
  .def-frow,.def-dfields{grid-template-columns:1fr}
}
