/* ── TPRM — App-specific styles ─────────────────────────── */ .panel-desc{font-size:0.85em;color:var(--text-muted);margin-bottom:16px;}/* ── Dashboard cards ──────────────────────────────────── */ .tprm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px;}.tprm-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:14px;text-align:center;}.tprm-card .card-val{font-size:2em;font-weight:800;}.tprm-card .card-lbl{font-size:0.78em;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:0.5px;}.tprm-card.critical .card-val{color:#dc2626;}.tprm-card.high .card-val{color:#ef4444;}.tprm-card.warning .card-val{color:var(--orange);}/* ── Vendor list ──────────────────────────────────────── */ .vendor-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--card-bg);border:1px solid var(--border);border-radius:6px;margin-bottom:6px;cursor:pointer;transition:all 0.15s;font-size:0.85em;}.vendor-card:hover{border-color:var(--light-blue);}.vendor-name{font-weight:700;}.vendor-favicon{width:20px;height:20px;border-radius:3px;object-fit:contain;}/* ── Tier badges ──────────────────────────────────────── */ .tier-badge{padding:2px 10px;border-radius:10px;font-size:0.72em;font-weight:700;color:white;}.tier-critical{background:#dc2626;}.tier-high{background:#ef4444;}.tier-medium{background:var(--orange);}.tier-low{background:var(--green);}/* ── DORA badge ───────────────────────────────────────── */ .dora-badge{padding:2px 8px;border-radius:10px;font-size:0.65em;font-weight:700;background:#7c3aed;color:white;letter-spacing:0.5px;}/* ── Vendor detail tabs ───────────────────────────────── */ .vendor-tabs{display:flex;gap:4px;margin-bottom:12px;}.vendor-tab{flex:1;padding:8px;border:none;background:var(--bg);cursor:pointer;border-radius:6px;font-weight:600;font-size:0.82em;color:var(--text-muted);transition:all 0.15s;}.vendor-tab.active{background:white;color:var(--blue);box-shadow:0 1px 3px rgba(0,0,0,0.1);}/* ── Risk matrix (SVG) ────────────────────────────────── */ .risk-matrix-container{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px;}.dash-risk-row{display:flex;gap:12px;margin-bottom:12px;max-width:784px;margin-left:auto;margin-right:auto;}.dash-matrix{flex:1 1 0;max-width:380px;min-width:240px;margin-bottom:0;padding:12px;}.dash-timeline{max-width:784px;margin-left:auto;margin-right:auto;}/* ── Assessment questionnaire ─────────────────────────── */ .question-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:8px;}.question-id{font-size:0.72em;font-weight:700;color:var(--text-muted);min-width:35px;}.question-domain{font-size:0.68em;font-weight:700;padding:2px 8px;border-radius:10px;background:#e8f4fd;color:var(--light-blue);}.question-text{font-weight:600;font-size:0.9em;margin:6px 0;}.question-hint{font-size:0.78em;color:var(--text-muted);margin-bottom:6px;}.answer-pills{display:flex;gap:4px;margin:8px 0;}.answer-pill{padding:4px 12px;border:2px solid var(--border);border-radius:6px;cursor:pointer;font-size:0.78em;font-weight:600;color:var(--text-muted);transition:all 0.15s;background:white;}.answer-pill.selected{border-color:var(--light-blue);color:var(--light-blue);background:#e8f4fd;}.answer-pill.compliant.selected{border-color:var(--green);color:var(--green);background:#e8f8ee;}.answer-pill.partial.selected{border-color:var(--orange);color:var(--orange);background:#fff7ed;}.answer-pill.non_compliant.selected{border-color:var(--red);color:var(--red);background:#fef2f2;}/* ── Score gauge ──────────────────────────────────────── */ .score-gauge{display:inline-flex;align-items:center;gap:6px;}.score-gauge .score-val{font-size:1.6em;font-weight:800;}/* ── Document tracking ────────────────────────────────── */ .doc-status-valid{color:var(--green);font-weight:600;}.doc-status-expiring{color:var(--orange);font-weight:600;}.doc-status-expired{color:var(--red);font-weight:600;}/* ── Forms ─────────────────────────────────────────────── */ .tprm-form{background:var(--card-bg);padding:16px;border:1px solid var(--border);border-radius:8px;}.tprm-form label{display:block;font-size:0.75em;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:3px;}.tprm-form input,.tprm-form select,.tprm-form textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:0.9em;font-family:inherit;box-sizing:border-box;}.tprm-form input:focus,.tprm-form select:focus,.tprm-form textarea:focus{border-color:var(--light-blue);outline:none;}.form-row{margin-bottom:10px;}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}/* ── Risk score colors ────────────────────────────────── */ .score-low{color:var(--green);}.score-medium{color:var(--orange);}.score-high{color:#f97316;}.score-critical{color:#dc2626;}/* ── Responsive ───────────────────────────────────────── */ @media (max-width:768px){.tprm-cards{grid-template-columns:repeat(2,1fr);}.form-grid{grid-template-columns:1fr;}.cls-columns{grid-template-columns:1fr;}.form-grid-4{grid-template-columns:1fr 1fr;}.vendor-tabs{flex-direction:column;}.dash-risk-row{flex-direction:column;}.dash-matrix{width:auto;}}/* ── Matrix tooltip ──────────────────────────────────── */ .matrix-tooltip{display:none;position:fixed;background:white;border:1px solid var(--border);border-radius:6px;padding:8px 10px;box-shadow:0 4px 12px rgba(0,0,0,0.15);font-size:0.8em;max-width:320px;z-index:100;pointer-events:none;}/* ── Classification columns ──────────────────────────── */ .cls-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;}.cls-col{background:var(--bg);border-radius:6px;padding:10px 12px;}.cls-col-title{font-size:0.75em;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-muted);margin-bottom:6px;}/* ── Exposure scoring ──────────────────────────────────── */ .form-section{font-size:0.75em;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-muted);margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--border);}.exposure-result{margin:10px 0;padding:8px 12px;background:var(--bg);border-radius:6px;font-size:0.9em;}.risk-levels{display:flex;gap:16px;margin:12px 0;flex-wrap:wrap;}.risk-level{background:var(--bg);border-radius:6px;padding:8px 14px;text-align:center;}.risk-level-label{font-size:0.75em;color:var(--text-muted);display:block;margin-bottom:2px;}.risk-level-value{font-size:1.2em;font-weight:700;}