:root{--sidebar-width:260px;--bg:#f3f4f6;--surface:#fff;--border:#e5e7eb;--text:#111827;--heading:#0f172a;--muted:#4b5563;--danger:#b91c1c;--row-hover:#f9fafb;--sidebar-bg:#0f172a;--sidebar-border:#1e293b;--sidebar-text:#cbd5e1;--sidebar-heading:#f8fafc;--sidebar-hover:#1e293b;--sidebar-active-bg:#1d4ed8;--sidebar-active-text:#fff}*,:before,:after{box-sizing:border-box}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;line-height:1.5}#root{min-height:100vh}button{font:inherit}.admin-layout{background:var(--bg);min-height:100vh;color:var(--text);display:flex}.admin-layout__overlay{z-index:20;cursor:pointer;background:#0f172a73;border:0;padding:0;position:fixed;inset:0}.admin-layout__content{flex-direction:column;flex:1;min-width:0;display:flex}.admin-layout__main{flex:1;padding:1.5rem}.sidebar{z-index:30;width:var(--sidebar-width);background:var(--sidebar-bg);max-width:85vw;color:var(--sidebar-text);border-right:1px solid var(--sidebar-border);flex-direction:column;transition:transform .2s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar__brand{border-bottom:1px solid var(--sidebar-border);padding:1.25rem 1.25rem 1rem}.sidebar__brand-title{color:var(--sidebar-heading);font-size:1rem;font-weight:650;line-height:1.35;display:block}.sidebar__nav{padding:1rem .75rem}.sidebar__list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.sidebar__link{width:100%;color:var(--sidebar-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.5rem;padding:.7rem .85rem;font-size:.95rem;text-decoration:none;transition:background .15s,color .15s;display:block}.sidebar__link:hover{background:var(--sidebar-hover);color:var(--sidebar-heading)}.sidebar__link--active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600}.sidebar__link--active:hover{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;min-height:4rem;padding:.75rem 1.5rem;display:flex}.header__menu-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:inline-flex}.header__menu-icon,.header__menu-icon:before,.header__menu-icon:after{background:var(--text);border-radius:999px;width:1rem;height:2px;display:block}.header__menu-icon{position:relative}.header__menu-icon:before,.header__menu-icon:after{content:"";position:absolute;left:0}.header__menu-icon:before{top:-5px}.header__menu-icon:after{top:5px}.header__title{color:var(--heading);margin:0;font-size:1.25rem;font-weight:650}.header__logout{flex-shrink:0;margin-left:auto}@media (width>=900px){.admin-layout__overlay{display:none}.sidebar{height:100vh;position:sticky;top:0;transform:none}.header__menu-button{display:none}.admin-layout__main{padding:2rem}}.sync-form{flex-direction:column;gap:1rem;display:flex}.sync-form__fields{border:0;grid-template-columns:1fr;gap:1rem;min-width:0;margin:0;padding:0;display:grid}.sync-form__field{flex-direction:column;gap:.35rem;display:flex}.sync-form__label{color:var(--heading);font-size:.85rem;font-weight:600}.sync-form__control{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:.5rem;padding:.5rem .75rem;font-size:.95rem}.sync-form__control:focus{outline:2px solid var(--sidebar-active-bg);outline-offset:1px}.sync-form__control:disabled{background:var(--bg);cursor:not-allowed}.sync-form__actions{align-items:flex-end;display:flex}.sync-form__spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:.9rem;height:.9rem;animation:.8s linear infinite sync-form-spin}@keyframes sync-form-spin{to{transform:rotate(360deg)}}.sync-form__success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;display:flex}.sync-form__success p{margin:0}.sync-form__success-title{font-weight:650}.sync-form__success-link{color:var(--sidebar-active-bg);align-self:flex-start;margin-top:.35rem;font-size:.9rem;font-weight:600;text-decoration:none}.sync-form__success-link:hover,.sync-form__success-link:focus-visible{text-decoration:underline}@media (width>=720px){.sync-form__fields{grid-template-columns:1fr 1fr auto}}.dashboard__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dashboard__header .page__title{margin-bottom:.35rem}.dashboard__sections{flex-direction:column;gap:1.5rem;margin-top:1.25rem;display:flex}.dashboard__section-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin-bottom:.85rem;display:flex}.dashboard__section-title{color:var(--heading);margin:0 0 .85rem;font-size:1rem;font-weight:650}.dashboard__section-header .dashboard__section-title{margin-bottom:0}.dashboard__link{color:var(--sidebar-active-bg);font-size:.9rem;font-weight:600;text-decoration:none}.dashboard__link:hover,.dashboard__link:focus-visible{text-decoration:underline}.dashboard__status{color:var(--muted);margin:1rem 0 0;font-size:.9rem}.dashboard__note{color:var(--muted);margin:.75rem 0 0;font-size:.85rem}.metrics__item--running{background:#eff6ff;border-color:#bfdbfe}.metrics__item--running .metrics__value{color:#1e40af}.dashboard-executions{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.dashboard-execution{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:.5rem;grid-template-columns:1fr;gap:.35rem 1rem;padding:.85rem 1rem;text-decoration:none;display:grid}.dashboard-execution:hover,.dashboard-execution:focus-visible{background:var(--row-hover)}.dashboard-execution__time{color:var(--muted);font-size:.85rem}@media (width>=720px){.dashboard-execution{grid-template-columns:auto minmax(8rem,1.2fr) minmax(6rem,.8fr) minmax(6rem,.8fr) auto;align-items:center}.dashboard-execution__time{justify-self:end}}.executions__content{margin-top:1.25rem}.execution-filters{border:1px solid var(--border);background:var(--bg);border-radius:.5rem;flex-direction:column;gap:1rem;margin-top:1.25rem;padding:1.25rem;display:flex}.execution-filters__title{color:var(--heading);margin:0;font-size:1rem;font-weight:650}.execution-filters__fields{grid-template-columns:1fr;gap:1rem;display:grid}.execution-filters__field{flex-direction:column;gap:.35rem;min-width:0;display:flex}.execution-filters__label{color:var(--heading);font-size:.85rem;font-weight:600}.execution-filters__control{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:.5rem;padding:.5rem .75rem;font-size:.95rem}.execution-filters__control:focus{outline:2px solid var(--sidebar-active-bg);outline-offset:1px}.execution-filters__control:disabled{background:var(--bg);cursor:not-allowed}.execution-filters__field-error{color:var(--danger);font-size:.8rem}.execution-filters__retry{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.execution-filters__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.execution-filters .button--primary{border-color:var(--sidebar-active-bg);background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600}.execution-filters .button--primary:hover:not(:disabled){background:#1e40af}@media (width>=720px){.execution-filters__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.execution-filters__fields{grid-template-columns:repeat(3,minmax(0,1fr))}}.data-table__wrapper{border:1px solid var(--border);border-radius:.5rem;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.65rem .85rem}.data-table th{background:var(--bg);color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-size:.8rem;font-weight:600}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--row-hover)}.data-table .data-table__numeric{text-align:right;font-variant-numeric:tabular-nums}.data-table__danger{color:var(--danger);font-weight:600}.data-table__link{color:inherit;text-decoration:none}.status-badge{background:var(--bg);color:var(--muted);border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.status-badge--success{color:#166534;background:#dcfce7}.status-badge--running{color:#1e40af;background:#dbeafe}.status-badge--warning{color:#92400e;background:#fef3c7}.status-badge--failed{color:#991b1b;background:#fee2e2}.status-badge--canceled{color:#374151;background:#e5e7eb}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.pagination__summary{color:var(--muted);font-size:.9rem}.pagination__actions{gap:.5rem;display:flex}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-page__card{width:100%;max-width:24rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-form__fields{border:0;flex-direction:column;gap:1rem;min-width:0;margin:0;padding:0;display:flex}.login-form__field{flex-direction:column;gap:.35rem;display:flex}.login-form__label{color:var(--heading);font-size:.85rem;font-weight:600}.login-form__control{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:.5rem;padding:.5rem .75rem;font-size:.95rem}.login-form__control:focus{outline:2px solid var(--sidebar-active-bg);outline-offset:1px}.login-form__control:disabled{background:var(--bg);cursor:not-allowed}.login-form__actions{justify-content:flex-end;display:flex}.login-form__actions .button--primary{border-color:var(--sidebar-active-bg);background:var(--sidebar-active-bg);color:var(--sidebar-active-text);align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.login-form__actions .button--primary:hover:not(:disabled){background:#1e40af}.login-form__spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:.9rem;height:.9rem;animation:.8s linear infinite login-form-spin}@keyframes login-form-spin{to{transform:rotate(360deg)}}.execution-detail__back{color:var(--sidebar-active-bg);margin-bottom:.75rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}.execution-detail__back:hover,.execution-detail__back:focus-visible{text-decoration:underline}.execution-detail__tags{color:var(--text);flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.execution-detail__tag-label{color:var(--muted)}.execution-detail__actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.execution-detail__cancel-requested{color:var(--muted);margin:.75rem 0 0;font-size:.9rem;font-weight:600}.execution-detail__header .page__state{margin-top:1rem}.execution-detail__header+.detail-section{margin-top:1.5rem}.detail-section__title{color:var(--heading);margin:0 0 .85rem;font-size:1rem;font-weight:650}.detail-section__count{color:var(--muted);font-weight:400}.detail-code{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.detail-list{grid-template-columns:1fr;gap:.85rem 1.5rem;margin:0;display:grid}.detail-list__item{min-width:0}.detail-list__item--wide{grid-column:1/-1}.detail-list dt{color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-size:.78rem;font-weight:600}.detail-list dd{color:var(--text);overflow-wrap:anywhere;white-space:pre-line;margin:.15rem 0 0}.metrics{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem;margin:0;display:grid}.metrics__item{border:1px solid var(--border);background:var(--bg);border-radius:.5rem;padding:.85rem 1rem}.metrics__label{color:var(--muted);font-size:.8rem;font-weight:600}.metrics__value{color:var(--heading);font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.4rem;font-weight:650}.metrics__item--danger{background:#fef2f2;border-color:#fecaca}.metrics__item--danger .metrics__value{color:var(--danger)}.data-table .product-result--has-details td{border-bottom:0}.data-table .product-result__details td{white-space:normal;padding-top:0}.product-result__message{color:var(--text);overflow-wrap:anywhere;margin:0 0 .5rem;font-size:.85rem}.product-result__label{color:var(--muted);font-weight:600}.detail-disclosure>summary{width:fit-content;color:var(--sidebar-active-bg);cursor:pointer;font-size:.85rem;font-weight:600}.detail-disclosure__hint{color:var(--danger)}.snapshot__notice{border-left:3px solid var(--danger);max-width:36rem;color:var(--danger);background:#fef2f2;margin:.5rem 0 0;padding:.5rem .75rem;font-size:.85rem}.snapshot__table{border-collapse:collapse;width:100%;max-width:36rem;margin-top:.5rem;font-size:.85rem}.data-table .snapshot__table th,.data-table .snapshot__table td{border-bottom:1px solid var(--border);color:var(--text);font-size:inherit;text-align:left;text-transform:none;letter-spacing:normal;white-space:normal;background:0 0;padding:.35rem .6rem;font-weight:400}.data-table .snapshot__table thead th{color:var(--muted);font-weight:600}.data-table .snapshot__row--changed th,.data-table .snapshot__row--changed td{font-weight:600}.snapshot__tag{color:#1e40af;background:#dbeafe;border-radius:999px;margin-left:.4rem;padding:0 .45rem;font-size:.7rem;font-weight:600;display:inline-block}.execution-logs{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.log-entry{border:1px solid var(--border);border-radius:.5rem;padding:.85rem 1rem}.log-entry__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem .75rem;font-size:.8rem;display:flex}.log-entry__event{background:var(--bg);color:var(--text);border-radius:.25rem;padding:0 .35rem}.log-entry__message{color:var(--text);overflow-wrap:anywhere;margin:.5rem 0}.log-entry__context{gap:.35rem;margin:.5rem 0 0;font-size:.85rem;display:grid}.log-entry__context-item{grid-template-columns:minmax(8rem,max-content) 1fr;gap:.75rem;display:grid}.log-entry__context-item dt{color:var(--muted)}.log-entry__context-item dd{overflow-wrap:anywhere;margin:0}@media (width>=720px){.detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.detail-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=480px){.log-entry__context-item{grid-template-columns:1fr;gap:0}}.schedule-form{flex-direction:column;gap:1rem;display:flex}.schedule-form__title{color:var(--heading);margin:0;font-size:1rem;font-weight:650}.schedule-form__fields{border:0;grid-template-columns:1fr;gap:1rem;min-width:0;margin:0;padding:0;display:grid}.schedule-form__field{flex-direction:column;gap:.35rem;display:flex}.schedule-form__label{color:var(--heading);font-size:.85rem;font-weight:600}.schedule-form__control{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:.5rem;padding:.5rem .75rem;font-size:.95rem}.schedule-form__control:focus{outline:2px solid var(--sidebar-active-bg);outline-offset:1px}.schedule-form__control:disabled{background:var(--bg);cursor:not-allowed}.schedule-form__field-error{color:var(--danger);font-size:.8rem}.schedule-form__checkbox{color:var(--text);align-items:center;gap:.5rem;font-size:.95rem;display:flex}.schedule-form__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.schedule-form__actions .button--primary{border-color:var(--sidebar-active-bg);background:var(--sidebar-active-bg);color:var(--sidebar-active-text);align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.schedule-form__actions .button--primary:hover:not(:disabled){background:#1e40af}.schedule-form__spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:.9rem;height:.9rem;animation:.8s linear infinite schedule-form-spin}@keyframes schedule-form-spin{to{transform:rotate(360deg)}}@media (width>=720px){.schedule-form__fields{grid-template-columns:1fr 1fr}.schedule-form__checkbox{grid-column:1/-1}}.schedules__content{margin-top:1.25rem}.schedules__status{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.schedule-filters{border:1px solid var(--border);background:var(--bg);border-radius:.5rem;flex-direction:column;gap:1rem;margin-top:1.25rem;padding:1.25rem;display:flex}.schedule-filters__title{color:var(--heading);margin:0;font-size:1rem;font-weight:650}.schedule-filters__fields{grid-template-columns:1fr;gap:1rem;display:grid}.schedule-filters__field{flex-direction:column;gap:.35rem;min-width:0;display:flex}.schedule-filters__label{color:var(--heading);font-size:.85rem;font-weight:600}.schedule-filters__control{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:.5rem;padding:.5rem .75rem;font-size:.95rem}.schedule-filters__control:focus{outline:2px solid var(--sidebar-active-bg);outline-offset:1px}.schedule-filters__control:disabled{background:var(--bg);cursor:not-allowed}.schedule-filters__field-error{color:var(--danger);font-size:.8rem}.schedule-filters__retry{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.schedule-filters__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}@media (width>=720px){.schedule-filters__fields{grid-template-columns:repeat(3,minmax(0,1fr))}}.schedules__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.schedules__form-panel{border:1px solid var(--border);background:var(--bg);border-radius:.5rem;margin-top:1.25rem;padding:1.25rem}.schedules__cron{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button--primary{border-color:var(--sidebar-active-bg);background:var(--sidebar-active-bg);color:var(--sidebar-active-text);align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.button--primary:hover:not(:disabled){background:#1e40af}.schedules__row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.page{width:100%;max-width:960px}.page--wide{max-width:1280px}.page__stack{flex-direction:column;gap:1.25rem;display:flex}.page__card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem}.page__title{color:var(--heading);margin:0 0 .5rem;font-size:1.15rem;font-weight:650}.page__text{color:var(--muted);margin:0;line-height:1.6}.page__text--spaced{margin-bottom:1.25rem}.page__state{border:1px dashed var(--border);color:var(--muted);border-radius:.5rem;flex-direction:column;align-items:flex-start;gap:.75rem;margin:0;padding:1.25rem;display:flex}.page__state p{margin:0}.page__state--error{color:var(--danger);background:#fef2f2;border-style:solid;border-color:#fecaca}.button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:.5rem;padding:.45rem .9rem;font-size:.9rem}.button:hover:not(:disabled){background:var(--row-hover)}.button:disabled{opacity:.5;cursor:not-allowed}
