.flash { margin: 1rem auto; max-width: 72rem; padding: .75rem 1rem; border-radius: .5rem; }
.flash--notice { background: #dcfce7; color: #166534; }.flash--alert { background: #fee2e2; color: #991b1b; }
.admin { background: #f8fafc; color: #1e293b; }.admin header { background: #0f172a; color: white; padding: .85rem max(1rem, calc((100% - 72rem) / 2)); display: flex; gap: 1rem; }.admin header p { margin: 0 auto 0 0; }.admin header a { color: #bfdbfe; }.admin header form { margin: 0; }
.admin-page { max-width: 72rem; margin: 2rem auto; padding: 0 1rem; }.admin-page__header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }.admin-page h1 { margin: 0; font-size: 1.8rem; }.admin-page h2 { margin-top: 2rem; }.admin-page__intro, .muted { color: #64748b; }
.admin-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 1.5rem; }.admin-nav a, .button-link { border-radius: .4rem; padding: .45rem .7rem; text-decoration: none; color: #1e3a8a; background: #e0e7ff; }.button-link--primary { background: #2563eb; color: white; }
.admin-card { background: white; border: 1px solid #e2e8f0; border-radius: .65rem; padding: 1.25rem; }.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .75rem; }.metric { background: white; border: 1px solid #e2e8f0; border-radius: .5rem; padding: .9rem; }.metric__value { display: block; font-size: 1.5rem; font-weight: 700; }
.admin table { width: 100%; border-collapse: collapse; background: white; border: 1px solid #e2e8f0; }.admin th, .admin td { padding: .75rem; border-bottom: 1px solid #e2e8f0; text-align: left; vertical-align: top; }.admin th { background: #f1f5f9; color: #475569; font-size: .75rem; text-transform: uppercase; }.admin tr:last-child td { border-bottom: 0; }
.admin form label { display: block; margin-bottom: .35rem; font-weight: 600; }.admin form select, .admin form input[type="file"] { width: 100%; box-sizing: border-box; padding: .55rem; border: 1px solid #cbd5e1; border-radius: .4rem; }.admin form p { margin: 1rem 0; }.admin input[type="submit"] { border: 0; border-radius: .4rem; padding: .6rem 1rem; background: #2563eb; color: white; font-weight: 600; cursor: pointer; }
.status-badge { display: inline-block; padding: .2rem .5rem; border-radius: 999px; background: #e2e8f0; font-size: .8rem; font-weight: 700; }.status-badge--completed, .status-badge--active, .status-badge--scheduled { background: #dcfce7; color: #166534; }.status-badge--failed, .status-badge--canceled { background: #fee2e2; color: #991b1b; }.status-badge--running, .status-badge--pending, .status-badge--in_progress { background: #fef3c7; color: #92400e; }
.detail-list { display: grid; grid-template-columns: minmax(10rem, 1fr) 2fr; gap: .6rem 1rem; }.detail-list dt { color: #64748b; font-weight: 600; }.csv-format { margin-top: 1rem; padding: 1rem; background: #f8fafc; border-radius: .4rem; }.csv-format code { display: block; overflow-wrap: anywhere; white-space: pre-wrap; }
@media (max-width: 640px) { .admin-page__header { display: block; }.admin table { display: block; overflow-x: auto; }.detail-list { grid-template-columns: 1fr; gap: .15rem; } }

html { overflow-x: hidden; }
body { margin: 0; min-width: 0; }
button, input, select, textarea, a.button-link { min-height: 44px; }
input, select, textarea { max-width: 100%; }
header { padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); }
@media (max-width: 640px) {
  .flash { margin: .75rem; }
  .admin form input[type="file"] { font-size: 16px; }
  .admin-page { margin-top: 1rem; }
}
