:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;color:#1a1a1a;background:#f7f7f8}*{box-sizing:border-box}body{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid #e5e5e8;position:sticky;top:0;z-index:20}.brand{font-weight:700;font-size:1.15rem;text-decoration:none;color:inherit}.app-nav{display:flex;align-items:center;gap:1rem}.app-main{max-width:48rem;margin:2rem auto;padding:0 1.5rem}form{display:flex;flex-direction:column;gap:.5rem;max-width:22rem}form label{font-weight:600}form input{padding:.5rem .6rem;border:1px solid #cbcbd2;border-radius:6px;font-size:1rem}button{padding:.5rem .9rem;border:1px solid transparent;border-radius:6px;background:#2b59ff;color:#fff;font-size:.95rem;cursor:pointer}button:disabled{opacity:.6;cursor:default}.app-nav button{background:transparent;color:#2b59ff;border-color:#2b59ff}.settings-menu{position:relative}.settings-menu__list{position:absolute;right:0;top:calc(100% + .4rem);min-width:12rem;margin:0;padding:.35rem 0;list-style:none;background:#fff;border:1px solid #e5e5e8;border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:30}.settings-menu__list li{margin:0}.settings-menu__list a,.settings-menu__list button{display:block;width:100%;text-align:left;padding:.5rem .9rem;color:inherit;text-decoration:none;background:transparent;border:0;border-radius:0;font-size:.95rem;cursor:pointer}.settings-menu__list a:hover,.settings-menu__list button:hover,.settings-menu__list a:focus-visible,.settings-menu__list button:focus-visible{background:#f2f4ff}.form-error{color:#b00020}.attribution-list{padding-left:1.1rem}.attribution{margin-bottom:.35rem}.attribution--pending{opacity:.85;font-style:italic}.empty-state{color:#6b6b73}.table-toolbar{display:flex;justify-content:flex-start;align-items:center;gap:.5rem;min-height:2.25rem;margin:.5rem 0 .75rem}.data-table{width:100%;border-collapse:collapse;margin:1rem 0}.data-table th,.data-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid #e5e5e8;font-size:.9rem}.row-actions{display:flex;gap:.4rem;flex-wrap:wrap}.row-actions button{background:transparent;color:#2b59ff;border-color:#cbcbd2;padding:.3rem .6rem;font-size:.85rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;background:#ececf1;color:#3a3a42}.badge--valid,.badge--succeeded{background:#dcf5e3;color:#1a6b39}.badge--invalid,.badge--dead_letter{background:#fce4e4;color:#b00020}.badge--running,.badge--queued,.badge--retrying,.badge--failed_retryable{background:#e5edff;color:#2b59ff}.entity-form{max-width:34rem;margin:1rem 0;padding:1rem;border:1px solid #e5e5e8;border-radius:8px;background:#fff}.entity-form textarea{min-height:4rem;padding:.5rem .6rem;border:1px solid #cbcbd2;border-radius:6px;font:inherit}.entity-form select{padding:.5rem .6rem;border:1px solid #cbcbd2;border-radius:6px;font-size:1rem}.entity-meta{color:#6b6b73;font-size:.9rem;margin:0 0 .5rem}.field-hint{color:#6b6b73;font-size:.82rem;margin:.15rem 0 0}.upload-progress{display:flex;align-items:center;gap:.6rem;margin:.25rem 0;font-size:.9rem;color:#4a4a52}.upload-progress progress{flex:1;height:.7rem;accent-color:#2b59ff}.danger-zone{border:1px solid #f0c0c0;border-radius:8px;padding:1rem 1.25rem;margin-top:1rem;background:snow}.danger-zone h2{color:#b00020;margin-top:0}.account-note{color:#6b6b73;font-size:.9rem}button.danger{background:#b00020;border-color:#b00020}button.danger:disabled{opacity:.5}.form-actions{display:flex;gap:.5rem;margin-top:.75rem}.checkbox-row{flex-direction:row;align-items:center;gap:.5rem}.projects-fieldset{border:1px solid #e5e5e8;border-radius:8px;margin-top:.75rem}.project-picker .picker-search{display:flex;gap:.5rem;margin-bottom:.5rem}.picker-list{list-style:none;padding:0;max-height:14rem;overflow-y:auto}.picker-pager{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.stage-list{color:#4a4a52;font-size:.9rem}.current-stage{font-weight:600;color:#2b59ff}.stage--succeeded{color:#1a6b39}.stage--running{font-weight:600}.stage--dead_letter,.stage--failed_retryable{color:#b00020}.delivered{font-weight:600;color:#1a6b39}.table-scroll{overflow-x:auto;max-width:100%}.infinite-footer{display:flex;align-items:center;gap:.75rem;min-height:1.5rem;padding:.5rem 0;color:#6b6b73;font-size:.9rem}.end-of-list{color:#9a9aa2}.offset-pager{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.list-error{display:flex;align-items:center;gap:.75rem;margin:.5rem 0}.job-label{font-weight:600}.status-cell{display:inline-flex;flex-direction:column;gap:.2rem;align-items:flex-start}.job-error{color:#b00020;font-size:.82rem}.retry-progress{color:#2b59ff;font-size:.82rem}.job-error-stage{color:#8a6b6b}.picker-count{color:#6b6b73;font-size:.9rem}.profile-strip{margin-bottom:2rem}.strip-scroll{display:flex;gap:.75rem;overflow-x:auto;padding:.25rem .1rem .75rem;scroll-snap-type:x proximity}.strip-scroll:focus-visible{outline:2px solid #2b59ff;outline-offset:2px;border-radius:8px}.pcard{position:relative;scroll-snap-align:start;flex:0 0 12rem;border:1px solid #e5e5e8;border-left:6px solid var(--pcard-accent, #8b8b93);border-radius:10px;background:#fff;text-decoration:none;color:inherit;transition:box-shadow .15s ease,transform .15s ease}.pcard--dragover{box-shadow:0 0 0 2px #2b59ff;transform:translateY(-2px)}.pcard__action{display:flex;flex-direction:column;gap:.15rem;width:100%;text-align:left;padding:.8rem .85rem;background:transparent;border:0;border-radius:10px;color:inherit;cursor:pointer}.pcard__name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcard__working{font-size:.8rem;color:#2b59ff}.strip-hint{min-height:1.2em}.pcard__body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.pcard__hint{font-size:.8rem;color:#8b8b93}.pcard--onboarding{display:grid;place-items:center;border-style:dashed;border-left-width:1px;padding:1.25rem;text-align:center}.strip-more{display:flex;align-items:center;flex:0 0 auto}.strip-more button{background:transparent;color:#2b59ff;border:1px solid #cbcbd2;white-space:nowrap}.pcard--slate{--pcard-accent: #64748b}.pcard--gray{--pcard-accent: #6b7280}.pcard--red{--pcard-accent: #dc2626}.pcard--orange{--pcard-accent: #ea580c}.pcard--amber{--pcard-accent: #d97706}.pcard--green{--pcard-accent: #16a34a}.pcard--teal{--pcard-accent: #0d9488}.pcard--cyan{--pcard-accent: #0891b2}.pcard--blue{--pcard-accent: #2563eb}.pcard--indigo{--pcard-accent: #4f46e5}.pcard--violet{--pcard-accent: #7c3aed}.pcard--rose{--pcard-accent: #e11d48}.toast-stack{position:fixed;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:40}.toast{display:flex;align-items:center;gap:1rem;padding:.6rem .9rem;background:#1f2430;color:#fff;border-radius:8px;box-shadow:0 8px 24px #00000040;animation:toast-in .18s ease}.toast__undo{background:transparent;border:1px solid #ffffff66;color:#fff;padding:.25rem .6rem}@keyframes toast-in{0%{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:grid;place-items:center;z-index:50;padding:1rem}.modal{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;max-width:26rem;width:100%;box-shadow:0 16px 48px #00000040}.modal h3{margin-top:0}@media (prefers-reduced-motion: reduce){.pcard,.toast{transition:none;animation:none}}.setup-steps{list-style:none;padding:0;margin:1rem 0;display:flex;flex-direction:column;gap:.6rem}.setup-step{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;border:1px solid #e5e5e8;border-radius:10px;background:#fff}.setup-step--done{border-color:#b7e4c7;background:#f4fbf6}.setup-step__num{flex:0 0 auto;display:grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:999px;background:#ececf1;font-weight:700}.setup-step--done .setup-step__num{background:#1a6b39;color:#fff}.setup-step__body{display:flex;flex-direction:column;gap:.1rem;flex:1}.setup-step__title{font-weight:600}.setup-step__desc{font-size:.85rem;color:#6b6b73}.setup-step__status--locked{color:#9a9aa2}.setup-complete{font-weight:600;color:#1a6b39}.mode-toggle{font-weight:600;margin-bottom:.25rem}.swatch-picker{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .4rem}.swatch{width:1.9rem;height:1.9rem;border-radius:6px;border:2px solid transparent;background:var(--pcard-accent, #ececf1);cursor:pointer;padding:0}.swatch--auto{background:#ececf1;color:#3a3a42;font-size:.7rem;font-weight:700}.swatch--selected{border-color:#1a1a1a;box-shadow:inset 0 0 0 2px #fff}.swatch:focus-visible{outline:2px solid #2b59ff;outline-offset:2px}.job-degraded{color:#8a5a00;font-size:.82rem}.badge--skipped{background:#fdf0d5;color:#8a5a00}.stage--skipped{color:#8a5a00}.artifact-row{display:flex;gap:.5rem;align-items:baseline}.artifact-stage{color:#6b6b73;font-size:.8rem;min-width:7rem}.artifacts-partial{color:#8a5a00;font-size:.85rem}.picker-filter{font-size:.85rem;margin:.25rem 0 .5rem}.project--unsupported label{color:#8b8b93}.project-unsupported-badge{margin-left:.5rem;background:#fde7e7;color:#8a5a00;font-size:.72rem}
