/*
 * Frontend styles are intentionally minimal so they inherit the active theme.
 * Admins can add overrides via Runtime Settings (front_custom_css).
 */

.t24g-front{margin:16px 0}
.t24g-front *{box-sizing:border-box}

/* Layout helpers */
.t24g-front-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 10px}
.t24g-front-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:10px 0 0}
.t24g-front-row > *{flex:1 1 260px}

/* Inputs: let theme style them; only set safe width */
.t24g-front textarea,.t24g-front input[type=text],.t24g-front input[type=number],.t24g-front select{width:100%;max-width:100%}

/* Buttons: inherit theme look; provide only spacing */
.t24g-front .t24g-front-btn{display:inline-flex;align-items:center;gap:8px;margin:6px 6px 0 0}

/* Notices / helper text (subtle, theme-friendly) */
.t24g-notice,.t24g-help{margin:10px 0;padding:10px 12px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.02);font-size:13px;line-height:1.45}
.t24g-notice-success,.t24g-help-ok{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.08)}
.t24g-notice-warning,.t24g-help-warn{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}
.t24g-notice-error,.t24g-help-err{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.08)}
.t24g-notice-info,.t24g-help-info{border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.08)}

/* Tables: minimal, should blend with theme */
.t24g-table{width:100%;border-collapse:collapse;margin:12px 0 0}
.t24g-table th,.t24g-table td{padding:10px;vertical-align:top;border-bottom:1px solid rgba(0,0,0,.10)}
.t24g-table thead th{border-bottom:2px solid rgba(0,0,0,.14)}

/* Job status visuals */
.t24g-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.14);background:rgba(0,0,0,.02);font-size:12px}
.t24g-pill.ok{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.08)}
.t24g-pill.warn{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}
.t24g-pill.err{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.08)}

/* Running indicator */
.t24g-spin{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid rgba(0,0,0,.25);border-top-color:currentColor;vertical-align:middle;animation:t24gspin .9s linear infinite}
@keyframes t24gspin{to{transform:rotate(360deg)}}

/* Stagnation + errors */
.t24g-job-stagnated{margin-top:6px;padding:8px 10px;border-radius:10px;border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.08);font-size:12px}
.t24g-job-error{margin-top:6px;padding:8px 10px;border-radius:10px;border:1px solid rgba(220,38,38,.35);background:rgba(220,38,38,.08);font-size:12px;word-break:break-word}

/* Report UI extras */
.t24g-report-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin:8px 0}
.t24g-score-row{padding:8px 10px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.02);margin:8px 0}
.t24g-score-high{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.08)}
.t24g-score-mid{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}
.t24g-score-low{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.08)}

.t24g-front a.button, .t24g-front .button, .t24g-front a{ text-decoration:none; }
.t24g-front a.button:hover{ text-decoration:none; }
.t24g-front .t24g-link{ text-decoration:none; }
