  :root{
    --bg:#12161D;
    --panel:#181D26;
    --panel-2:#1E2430;
    --hairline:#2A3140;
    --text:#E4E7EC;
    --text-dim:#8993A6;
    --text-faint:#5C6577;
    --accent:#5B8CFF;
    --warn:#E8A33D;
    --crit:#F0555A;

    --src-winevt:#6C8EF5;
    --src-ssh:#2FBF9F;
    --src-email:#B78EF0;
    --src-fw:#F0A94E;
    --src-proxy:#F0729B;
    --src-web:#4FC3E0;
    --src-dns:#9AC24E;
    --src-edr:#F0555A;
    --src-cloud:#4C7CE0;
    --src-cicd:#C77DFF;
    --src-db:#D4B106;
    --src-dlp:#E0855A;
    --src-hr:#8D99AE;

    --radius:10px;
    --mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    --sans: 'IBM Plex Sans', system-ui, -apple-system, Segoe UI, sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);height:100%;}
  ::selection{background:var(--accent);color:#0A0D12;}

  a{color:var(--accent);}

  .app{display:flex;flex-direction:column;min-height:100vh;}

  .topbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 22px;border-bottom:1px solid var(--hairline);
    background:linear-gradient(180deg, #151A22, #12161D);
    flex-wrap:wrap;gap:10px;
  }
  .topbar-left{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
  .topbar h1{font-size:16px;margin:0;letter-spacing:.02em;font-weight:600;}
  .topbar h1 .case{color:var(--text-faint);font-family:var(--mono);font-weight:500;font-size:12px;margin-left:8px;}
  .topbar .tagline{color:var(--text-dim);font-size:12.5px;}
  .status-pill{
    font-family:var(--mono);font-size:11px;color:var(--warn);
    border:1px solid rgba(232,163,61,.35);background:rgba(232,163,61,.08);
    padding:4px 10px;border-radius:999px;letter-spacing:.03em;
  }

  .layout{
    display:grid;
    grid-template-columns: 250px minmax(0,1fr) 300px;
    gap:1px;background:var(--hairline);
    flex:1;
  }
  aside, main{background:var(--bg);}
  .sidebar-left, .sidebar-right{padding:16px;overflow-y:auto;}
  main.feed{display:flex;flex-direction:column;min-width:0;}

  h2.panel-title{
    font-size:11px;text-transform:uppercase;letter-spacing:.08em;
    color:var(--text-faint);margin:0 0 10px;font-weight:600;
  }

  details.brief{
    background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);
    padding:10px 12px;margin-bottom:16px;
  }
  details.brief summary{cursor:pointer;font-size:12.5px;color:var(--text);font-weight:600;list-style:none;}
  details.brief summary::-webkit-details-marker{display:none;}
  details.brief summary::before{content:"▸ ";color:var(--accent);}
  details.brief[open] summary::before{content:"▾ ";}
  details.brief p{font-size:12.5px;color:var(--text-dim);line-height:1.55;margin:10px 0 0;}
  details.brief table{width:100%;font-size:11.5px;color:var(--text-dim);margin-top:10px;border-collapse:collapse;}
  details.brief td{padding:3px 0;border-top:1px solid var(--hairline);}
  details.brief td:first-child{color:var(--text);font-family:var(--mono);white-space:nowrap;padding-right:8px;}

  .filter-item{
    display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;
    font-size:12.5px;cursor:pointer;user-select:none;
  }
  .filter-item:hover{background:var(--panel);}
  .filter-item input{accent-color:var(--accent);}
  .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  .filter-item .count{margin-left:auto;color:var(--text-faint);font-family:var(--mono);font-size:11px;}

  .side-divider{height:1px;background:var(--hairline);margin:16px 0;}

  .toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;padding:4px 0;}
  .switch{position:relative;width:34px;height:19px;flex-shrink:0;}
  .switch input{opacity:0;width:0;height:0;}
  .slider{position:absolute;inset:0;background:var(--panel-2);border:1px solid var(--hairline);border-radius:999px;cursor:pointer;transition:.15s;}
  .slider::before{content:"";position:absolute;width:13px;height:13px;left:2px;top:2px;background:var(--text-dim);border-radius:50%;transition:.15s;}
  input:checked + .slider{background:rgba(91,140,255,.25);border-color:var(--accent);}
  input:checked + .slider::before{transform:translateX(15px);background:var(--accent);}

  .progress-box{font-size:11.5px;color:var(--text-faint);font-family:var(--mono);margin-top:14px;}
  .progress-bar{height:5px;border-radius:3px;background:var(--panel-2);overflow:hidden;margin-top:6px;}
  .progress-fill{height:100%;background:var(--warn);width:0%;transition:width .2s;}

  .searchbar{
    display:flex;align-items:center;gap:10px;padding:12px 20px;
    border-bottom:1px solid var(--hairline);position:sticky;top:0;background:var(--bg);z-index:5;
  }
  .searchbar input[type="search"]{
    flex:1;background:var(--panel);border:1px solid var(--hairline);border-radius:8px;
    padding:9px 12px;color:var(--text);font-family:var(--mono);font-size:13px;outline:none;
  }
  .searchbar input[type="search"]::placeholder{color:var(--text-faint);}
  .searchbar input[type="search"]:focus{border-color:var(--accent);}
  .result-count{font-size:11.5px;color:var(--text-faint);font-family:var(--mono);white-space:nowrap;}

  .cards{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;}
  .card{
    background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);
    padding:14px 16px;border-left:3px solid var(--card-color, var(--hairline));
    transition:border-color .15s, background .15s;
  }
  .card.flagged{background:rgba(232,163,61,.06);border-color:rgba(232,163,61,.5);}
  .card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
  .src-badge{
    display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;
    color:var(--card-color);font-family:var(--sans);
  }
  .card-title{font-size:13px;font-weight:600;color:var(--text);}
  .card-meta{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text-faint);font-family:var(--mono);}
  .badge-crit{
    font-size:10px;font-weight:700;color:var(--crit);border:1px solid rgba(240,85,90,.4);
    background:rgba(240,85,90,.1);padding:2px 6px;border-radius:5px;letter-spacing:.04em;
  }
  .card pre{
    font-family:var(--mono);font-size:12px;line-height:1.6;color:var(--text-dim);
    white-space:pre-wrap;word-break:break-word;margin:0 0 10px;
  }
  .card pre mark{background:rgba(91,140,255,.28);color:var(--text);border-radius:2px;}
  .card-actions{display:flex;justify-content:flex-end;}
  .flag-btn{
    font-family:var(--sans);font-size:11.5px;font-weight:600;cursor:pointer;
    background:transparent;border:1px solid var(--hairline);color:var(--text-dim);
    padding:6px 12px;border-radius:7px;transition:.15s;
  }
  .flag-btn:hover{border-color:var(--warn);color:var(--warn);}
  .card.flagged .flag-btn{background:var(--warn);border-color:var(--warn);color:#1A1200;}

  .empty-state{color:var(--text-faint);font-size:12.5px;padding:30px 4px;text-align:center;}

  .sidebar-right{display:flex;flex-direction:column;}
  .flagged-list{list-style:none;margin:0 0 6px;padding:0;font-size:12px;}
  .flagged-list li{
    padding:7px 8px;border-radius:6px;margin-bottom:5px;background:var(--panel);
    border-left:2px solid var(--warn);color:var(--text-dim);font-family:var(--mono);font-size:11.5px;
  }
  .flagged-empty{font-size:12px;color:var(--text-faint);padding:6px 2px;}

  textarea#notes{
    width:100%;min-height:160px;resize:vertical;background:var(--panel);
    border:1px solid var(--hairline);border-radius:8px;color:var(--text);
    font-family:var(--sans);font-size:12.5px;line-height:1.55;padding:10px;outline:none;
  }
  textarea#notes:focus{border-color:var(--accent);}

  .report-checklist{list-style:none;margin:0;padding:0;font-size:11.5px;color:var(--text-dim);}
  .report-checklist li{padding:4px 0;border-top:1px solid var(--hairline);}
  .report-checklist li:first-child{border-top:none;}
  .report-checklist b{color:var(--text);}

  .panel-btns{display:flex;gap:8px;margin-top:16px;}
  .btn{
    flex:1;font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;
    border-radius:8px;padding:9px 10px;border:1px solid var(--hairline);
    background:var(--panel);color:var(--text);transition:.15s;
  }
  .btn:hover{border-color:var(--accent);color:var(--accent);}
  .btn.primary{background:var(--accent);border-color:var(--accent);color:#0A0D12;}
  .btn.primary:hover{filter:brightness(1.08);color:#0A0D12;}

  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible{
    outline:2px solid var(--accent);outline-offset:2px;
  }

  @media (prefers-reduced-motion: reduce){
    *{transition:none !important;}
  }

  @media (max-width: 980px){
    .layout{grid-template-columns:1fr;}
    .sidebar-left{
      display:flex;gap:8px;overflow-x:auto;padding:12px 16px;white-space:nowrap;
      border-bottom:1px solid var(--hairline);
    }
    .sidebar-left .panel-title, .sidebar-left .side-divider, .sidebar-left .progress-box, details.brief{display:none;}
    .filter-item{flex-shrink:0;}
    .sidebar-right{border-top:1px solid var(--hairline);}
  }

  .who-label{
    font-family:var(--mono);font-size:11.5px;color:var(--text-dim);
    padding:4px 10px;border:1px solid var(--hairline);border-radius:999px;background:var(--panel);
  }

  .ticket-panel{
    margin-top:10px;padding-top:12px;border-top:1px dashed var(--hairline);
    display:flex;flex-direction:column;gap:8px;
  }
  .ticket-row{display:flex;align-items:center;gap:10px;}
  .ticket-row label{
    font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:600;
  }
  .ticket-priority{
    background:var(--panel-2);border:1px solid var(--hairline);border-radius:6px;
    color:var(--text);font-family:var(--sans);font-size:12.5px;padding:6px 8px;outline:none;
  }
  .ticket-priority:focus{border-color:var(--accent);}
  .ticket-desc, .ticket-action{
    width:100%;min-height:56px;resize:vertical;background:var(--panel-2);
    border:1px solid var(--hairline);border-radius:7px;color:var(--text);
    font-family:var(--sans);font-size:12.5px;line-height:1.5;padding:8px 10px;outline:none;
  }
  .ticket-desc:focus, .ticket-action:focus{border-color:var(--accent);}
  .ticket-desc::placeholder, .ticket-action::placeholder{color:var(--text-faint);}

  .prio-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle;}
  .prio-Low{background:#6C8EF5;}
  .prio-Medium{background:#E8A33D;}
  .prio-High{background:#F0A94E;}
  .prio-Critical{background:#F0555A;}

  .submit-status{
    font-size:11.5px;margin-top:8px;text-align:center;min-height:14px;color:var(--text-faint);
  }
  .submit-status.success{color:#2FBF9F;}
  .submit-status.error{color:var(--crit);}

  .toast{
    position:fixed;top:22px;left:50%;transform:translateX(-50%) translateY(-16px);
    background:var(--panel);border:1px solid var(--hairline);border-left:4px solid var(--warn);
    border-radius:10px;padding:14px 22px;font-family:var(--sans);font-size:13.5px;font-weight:600;
    color:var(--text);box-shadow:0 10px 34px rgba(0,0,0,.45);z-index:1000;
    opacity:0;pointer-events:none;transition:opacity .22s ease, transform .22s ease;
    max-width:min(90vw, 420px);text-align:center;
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
  .toast.success{border-left-color:#2FBF9F;}
  .toast.error{border-left-color:var(--crit);}
  @media (prefers-reduced-motion: reduce){
    .toast{transition:opacity .01s;}
  }

  .grading-box{
    margin-top:12px;padding:12px 14px;border-radius:10px;font-size:12px;line-height:1.55;
    border:1px solid var(--hairline);background:var(--panel);
  }
  .grading-box.pass{border-color:rgba(47,191,159,.4);background:rgba(47,191,159,.06);}
  .grading-box.fail{border-color:rgba(232,163,61,.4);background:rgba(232,163,61,.06);}
  .grading-head{font-weight:700;color:var(--text);margin-bottom:6px;}
  .grading-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px;}
  .grading-list li{padding:6px 8px;border-radius:6px;background:var(--panel-2);color:var(--text-dim);}
  .grading-list li b{color:var(--text);}
  .grading-foot{color:var(--text-faint);font-size:11px;margin-top:4px;}

  .bonus-banner{
    display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
    background:linear-gradient(90deg, rgba(232,163,61,.14), rgba(47,191,159,.10));
    border-bottom:1px solid var(--hairline);
    padding:10px 22px;font-size:13px;color:var(--text);
  }
  .bonus-banner .btn{flex:none;padding:8px 16px;}
