/* AUTO-GENERATED — dynamic/conditional CSS classes to replace Jinja inline styles */

/* ── Severity card (issue & death-analysis) ── */
.card-sev-high   { background: #1a0505; border-color: #c62828; }
.card-sev-medium { background: #1a1500; border-color: #f9a825; }
.card-sev-low    { background: #0d1a0d; border-color: #388e3c; }

/* Death-analysis card (archive/view.html — border-left variant) */
.death-card      { border-radius: 4px; padding: .65rem .9rem; }
.death-card-high   { background: #1a0505; border-left: 3px solid #c62828; }
.death-card-medium { background: #1a1200; border-left: 3px solid #f9a825; }
.death-card-low    { background: #0d1a0d; border-left: 3px solid #388e3c; }

/* Small severity badge (issue/death-analysis label pill) */
.sev-sm-badge        { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; padding: .1rem .45rem; border-radius: 10px; }
.sev-sm-badge-high   { background: #c6282833; color: #c0392b; }
.sev-sm-badge-medium { background: #f9a82533; color: #fff176; }
.sev-sm-badge-low    { background: #388e3c33; color: #3d6329; }

/* Death-analysis badge (slightly different sizing) */
.death-badge        { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; padding: .1rem .4rem; border-radius: 8px; font-weight: 700; }
.death-badge-high   { background: #c6282833; color: #c0392b; }
.death-badge-medium { background: #f9a82533; color: #fff176; }
.death-badge-low    { background: #388e3c33; color: #3d6329; }

/* Severity text colors */
.sev-text-high   { color: #c0392b; }
.sev-text-medium { color: #fff176; }
.sev-text-low    { color: #3d6329; }

/* ── Urgency (watering prediction) ── */
.urgency-overdue { background: #1a0a0a; border-color: #c62828; }
.urgency-today   { background: #1a1500; border-color: #f9a825; }
.urgency-soon    { background: #111a11; border-color: #558b2f; }
.urgency-later   { background: #0f1a0f; border-color: #2d4a1e; }

.urgency-text         { font-size: 1.5rem; font-weight: 700; }
.urgency-overdue-text { color: #c0392b; }
.urgency-today-text   { color: #fff176; }
.urgency-soon-text    { color: #aed581; }
.urgency-later-text   { color: #5a8a3a; }

/* Factor breakdown strip — border-top colour inherits from parent urgency card */
.urgency-factor-strip { margin-top: .85rem; padding-top: .7rem; border-top: 1px solid transparent; display: flex; flex-wrap: wrap; gap: .4rem; font-size: .78rem; }
.urgency-overdue .urgency-factor-strip { border-top-color: #c62828; }
.urgency-today   .urgency-factor-strip { border-top-color: #f9a825; }
.urgency-soon    .urgency-factor-strip { border-top-color: #558b2f; }
.urgency-later   .urgency-factor-strip { border-top-color: #2d4a1e; }

/* Watering confidence */
.c-conf-high   { color: #5a8a3a; }
.c-conf-medium { color: #f9a825; }
.c-conf-low    { color: #888; }

/* ── Progress bar fill ── */
.progress-fill { background: #5a8a3a; height: 100%; border-radius: 20px; transition: width .3s; }

/* ── Week count ── */
.week-over { font-weight: 600; color: #e65100; }
.week-ok   { font-weight: 600; color: #1a1e14; }

/* ── Nutrients row (plants/view schedule) ── */
.nutrient-row      { display: flex; justify-content: space-between; align-items: center; padding: .3rem 0; border-bottom: 1px solid #c8e0c8; color: #1a1e14; }
.nutrient-row-zero { color: #444; }

/* ── Admin — HTTP method/status ── */
/* dashboard */
.log-method-dsh { font-weight: 700; flex-shrink: 0; color: var(--text-muted); }
/* logs page */
.log-method-lg  { font-weight: 700; min-width: 40px; margin-right: .5rem; color: var(--text-muted); }
.log-status-lg  { font-weight: 700; min-width: 35px; text-align: right; margin-right: .5rem; }
/* user detail */
.log-method-ud  { font-weight: 700; width: 40px; color: var(--text-muted); }
.log-status-ud  { font-weight: 700; width: 35px; text-align: right; }
/* shared colour modifiers */
.log-method-POST  { color: #f9a825; }
.log-status-5xx   { color: #ef5350; }
.log-status-4xx   { color: #ff8a65; }
.log-status-3xx   { color: #f9a825; }
.log-status-2xx   { color: #5a8a3a; }

/* ── Admin — dashboard error stat ── */
.stat-num { font-size: 2rem; font-weight: 800; }
.stat-ok  { color: #5a8a3a; }
.stat-err { color: #ef5350; }

/* ── Admin — GDPR boolean ok/bad ── */
.gdpr-ok     { color: #2d4a1e; font-weight: 600; }
.gdpr-bad    { color: #fca5a5; font-weight: 600; }
.gdpr-ok-sm  { font-size: .75rem; color: #2d4a1e; font-weight: 600; }
.gdpr-bad-sm { font-size: .75rem; color: #fca5a5; font-weight: 600; }

/* ── Admin — TOMS measure status badge ── */
.toms-badge    { font-size: .72rem; font-weight: 600; padding: .15rem .45rem; border-radius: 4px; }
.toms-badge-lg { font-size: .72rem; font-weight: 600; padding: .18rem .5rem;  border-radius: 4px; }
.toms-badge-implemented { background: #e8f5e9; color: #2d4a1e; border: 1px solid #a5d6a7; }
.toms-badge-procedural  { background: #1a2e10; color: #fbbf24; border: 1px solid #b45309; }
.toms-badge-pending     { background: #3d3a15; color: #fde68a; border: 1px solid #78716c; }

/* TOMS measure card border by category */
.measure-bdr-Encryption           { border-color: #90caf9; }
.measure-bdr-Access-Control       { border-color: #4a1d8a; }
.measure-bdr-Key-Management       { border-color: #a5d6a7; }
.measure-bdr-Incident-Response    { border-color: #fca5a5; }
.measure-bdr-Personnel            { border-color: #fed7aa; }

/* ── Admin — Breach assessment ── */
.ba-card-critical { border-color: #fca5a5; }
.ba-card-high     { border-color: #713f12; }
.ba-card-medium   { border-color: #3d3a15; }
.ba-card-low      { border-color: #ddd8cc; }

.ba-badge          { font-size: .75rem; font-weight: 600; padding: .2rem .55rem; border-radius: 4px; }
.ba-badge-critical { background: #fca5a5; color: #fca5a5; border: 1px solid #c62828; }
.ba-badge-high     { background: #713f12; color: #fbbf24; border: 1px solid #b45309; }
.ba-badge-medium   { background: #3d3a15; color: #fde68a; border: 1px solid #78716c; }
.ba-badge-low      { background: #e8f5e9; color: #2d4a1e; border: 1px solid #a5d6a7; }

.ba-notify          { font-size: .75rem; font-weight: 600; padding: .18rem .5rem; border-radius: 4px; }
.ba-notify-required { background: #1a2e10; color: #fbbf24; border: 1px solid #b45309; }
.ba-notify-ok       { background: #e8f5e9; color: #2d4a1e; border: 1px solid #a5d6a7; }
.ba-art34-required  { background: #fef2f2; color: #fca5a5; border: 1px solid #c62828; }
.ba-art34-ok        { background: #e8f5e9; color: #2d4a1e; border: 1px solid #a5d6a7; }

/* ── Admin — Security events ── */
.sec-event-row      { display: grid; grid-template-columns: auto auto auto 1fr auto auto; gap: 0; padding: .55rem 1rem; border-bottom: 1px solid var(--border); align-items: start; font-size: .78rem; }
.sec-event-resolved { opacity: .55; }
.sec-sev-badge    { font-weight: 700; min-width: 70px; padding-top: .1rem; }
.sec-sev-critical { color: #ef5350; }
.sec-sev-high     { color: #ff8a65; }
.sec-sev-medium   { color: #f9a825; }
.sec-sev-low      { color: #5a8a3a; }

/* ── Calendar ── */
.cal-day           { min-height: 80px; border-radius: 6px; padding: .4rem; position: relative; border: 1px solid #b8d4b8; }
.cal-day-today     { background: #1b3a2e; border-color: #5a8a3a; }
.cal-day-past      { background: #111; }
.cal-day-future    { background: #c8e0c8; }
.cal-day-overdue   { border-color: #c62828; }
.cal-day-num       { font-size: .75rem; margin-bottom: .3rem; }
.cal-day-num-today { color: #5a8a3a; font-weight: 700; }
.cal-day-num-other { color: #555; font-weight: 400; }
.cal-task            { display: block; text-decoration: none; margin-bottom: .2rem; font-size: .7rem; padding: .2rem .4rem; border-radius: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-task-overdue    { background: #5a1a1a; color: #ef9a9a; }
.cal-task-water      { background: #1a3a5a; color: #90caf9; }
.cal-task-feed       { background: #1a4a2a; color: #a8d5a8; }
.cal-task-environment { background: #1a3a4a; color: #80deea; }
.cal-task-other      { background: #3a3a1a; color: #fff176; }

/* ── Daily check ── */
.c-ans-wk-yes  { font-size: .9rem; color: #f9a825; }
.c-ans-wk-no   { font-size: .9rem; color: #5a8a3a; }
.c-ans-bud-yes { font-size: .9rem; color: #c0392b; }
.c-ans-bud-no  { font-size: .9rem; color: #5a8a3a; }
.loop-divider    { border-bottom: 1px solid #d4e8d4; margin-bottom: .4rem;  padding-bottom: .4rem;  }
.loop-divider-sm { border-bottom: 1px solid #d4e8d4; margin-bottom: .35rem; padding-bottom: .35rem; }
.ec-alert         { margin-top: .6rem; padding: .5rem .75rem; font-size: .78rem; border-radius: 6px; }
.ec-alert-danger  { background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; }
.ec-alert-warning { background: #fff3cd; border: 1px solid #ffc107; color: #856404; }

/* ── Nutrients page ── */
.nutrient-group           { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin: .75rem 0 .4rem; }
.nutrient-group-macro     { color: #155724; }
.nutrient-group-secondary { color: #856404; }
.nutrient-group-trace     { color: #5a3e00; }
.elem-btn         { border: none; cursor: pointer; border-radius: 6px; padding: .3rem .65rem; font-size: .82rem; font-weight: 600; }
.elem-btn-covered { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.elem-btn-missing { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.product-label         { display: flex; align-items: flex-start; gap: .5rem; cursor: pointer; padding: .5rem .6rem; border-radius: var(--radius-xs); }
.product-label-owned   { border: 1px solid var(--green-dark); background: rgba(45,74,30,.06); }
.product-label-unowned { border: 1px solid var(--border); background: transparent; }
.cat-grow    { color: #2d6a4f; }
.cat-bloom   { color: #9b2335; }
.cat-booster { color: #b5451b; }
.cat-other   { color: #5a6e3a; }

/* ── Strain view — targets in/out of range ── */
.target-ok  { font-size: .72rem; margin-top: .25rem; color: #5a8a3a; }
.target-bad { font-size: .72rem; margin-top: .25rem; color: #ef9a9a; }

/* ── Strain difficulty color (badge text) ── */
.diff-easy   { background: #1a3a1a; color: #5a8a3a;  border-color: #2d4a1e; }
.diff-medium { background: #3a2a00; color: #ffd54f;  border-color: #6d4c00; }
.diff-hard   { background: #3a0a0a; color: #ef9a9a;  border-color: #fca5a5; }
