:root{--color-bg: #F5F6F2;--color-surface: #FFFFFF;--color-surface-sunken: #ECEEE9;--color-ink: #14201F;--color-ink-muted: #5B6663;--color-border: #DBDFD8;--color-accent: #1B6E7A;--color-accent-strong: #114F58;--color-up: #C4432B;--color-down: #3159A6;--color-warn: #B8862C;--color-danger: #B23A2E;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--radius: 6px;--radius-lg: 10px;--shadow-card: 0 1px 2px rgba(20, 32, 31, .06), 0 1px 8px rgba(20, 32, 31, .04);--max-width: 1180px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;margin:0 0 .4em;color:var(--color-ink)}h1{font-size:1.9rem}h2{font-size:1.35rem}h3{font-size:1.05rem}code,.mono,.data-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:var(--color-accent-strong)}button,input,select{font-family:inherit;font-size:.92rem}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{border-bottom:1px solid var(--color-border);background:var(--color-surface);padding:.9rem 1.5rem;display:flex;align-items:baseline;justify-content:space-between}.topbar-brand{display:flex;align-items:baseline;gap:.6rem}.topbar-brand .mark{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:3px;padding:1px 5px}.topbar-nav a{margin-left:1.4rem;text-decoration:none;color:var(--color-ink-muted);font-size:.9rem}.topbar-nav a.active,.topbar-nav a:hover{color:var(--color-ink)}.container{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem 4rem;width:100%;flex:1}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.4rem 1.6rem}.card+.card{margin-top:1rem}.field{margin-bottom:1.1rem}.field label{display:block;font-size:.82rem;font-weight:600;color:var(--color-ink-muted);margin-bottom:.35rem}.field input[type=text],.field input[type=number],.field input[type=password],.field input[type=email],.field select{width:100%;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-ink)}.field .hint{font-size:.78rem;color:var(--color-ink-muted);margin-top:.3rem}.file-drop{border:1.5px dashed var(--color-border);border-radius:var(--radius);padding:1.1rem;text-align:center;cursor:pointer;background:var(--color-surface-sunken);transition:border-color .15s ease}.file-drop:hover,.file-drop.active{border-color:var(--color-accent)}.file-drop .filename{font-family:var(--font-mono);font-size:.85rem}.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid transparent;border-radius:var(--radius);padding:.6rem 1.1rem;font-weight:600;font-size:.88rem;cursor:pointer}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-strong)}.btn-primary:disabled{background:var(--color-border);color:var(--color-ink-muted);cursor:not-allowed}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-ink)}.btn-secondary:hover{border-color:var(--color-accent)}.btn-ghost{background:transparent;border-color:transparent;color:var(--color-ink-muted)}.badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .5rem;border-radius:99px;text-transform:uppercase;letter-spacing:.03em}.badge-pending,.badge-queued{background:#efe9da;color:var(--color-warn)}.badge-running{background:#dceef0;color:var(--color-accent-strong)}.badge-completed{background:#deefe0;color:#2a6e37}.badge-failed{background:#f5dcd8;color:var(--color-danger)}.badge-cancelled{background:var(--color-surface-sunken);color:var(--color-ink-muted)}table{width:100%;border-collapse:collapse;font-size:.87rem}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--color-border)}th{font-size:.74rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-ink-muted);font-weight:600}tr:hover td{background:var(--color-surface-sunken)}.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--color-border);margin-bottom:1.2rem}.tab{padding:.6rem 1rem;cursor:pointer;color:var(--color-ink-muted);border-bottom:2px solid transparent;font-weight:600;font-size:.88rem}.tab.active{color:var(--color-accent-strong);border-bottom-color:var(--color-accent)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-ink-muted)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media (max-width: 720px){.grid-2,.grid-3{grid-template-columns:1fr}}.stat{border:1px solid var(--color-border);border-radius:var(--radius);padding:.9rem 1rem;background:var(--color-surface-sunken)}.stat .value{font-family:var(--font-mono);font-size:1.5rem;font-weight:500}.stat .label{font-size:.78rem;color:var(--color-ink-muted)}.error-banner{background:#f5dcd8;border:1px solid #E3A99E;color:var(--color-danger);border-radius:var(--radius);padding:.8rem 1rem;font-size:.88rem;margin-bottom:1rem}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.report-toolbar{display:flex;justify-content:space-between;margin-bottom:1.4rem}.report table th{text-align:left;color:var(--color-ink-muted);font-weight:600;padding-right:1rem;vertical-align:top}@media print{.topbar,.report-toolbar,footer,.tabs,.btn{display:none!important}.container{max-width:none;padding:0}.card{box-shadow:none;border:1px solid var(--color-border);break-inside:avoid}body{background:#fff}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
