*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f7f8fa;color:#1a1f2b}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-form{display:flex;flex-direction:column;gap:12px;width:320px;padding:32px;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000001a}.login-form label{display:flex;flex-direction:column;gap:4px;font-size:14px}.login-form input{padding:8px;border:1px solid #ccc;border-radius:4px}.login-form button{padding:10px;border:none;border-radius:4px;background:#2b3a55;color:#fff;cursor:pointer}.login-form button:disabled{opacity:.6;cursor:default}.error-text{color:#b3261e;font-size:13px}.app-shell{min-height:100vh}.app-nav{display:flex;align-items:center;gap:20px;padding:12px 24px;background:#2b3a55;color:#fff}.app-title{font-weight:600;margin-right:auto}.app-nav a{color:#cbd5f0;text-decoration:none}.app-nav a.active{color:#fff;font-weight:600}.logout-button{background:none;border:1px solid #cbd5f0;color:#fff;padding:6px 12px;border-radius:4px;cursor:pointer}.app-main{padding:24px;max-width:1100px;margin:0 auto}.counter-strip{display:flex;gap:24px;align-items:center;margin-bottom:16px}.counter{display:flex;flex-direction:column}.counter-value{font-size:28px;font-weight:700}.counter-label{font-size:12px;color:#666}.reconnecting{color:#b3261e;font-size:13px}.filters{display:flex;gap:12px;margin-bottom:12px}.filters select{padding:6px}.run-list,.history-timeline,.trace-section{list-style:none;padding:0;margin:0}.run-row a{display:grid;grid-template-columns:80px 1fr 140px 180px;gap:12px;padding:10px;text-decoration:none;color:inherit;border-bottom:1px solid #e5e7eb;align-items:center}.run-row.highlight{background:#fff7e6}.loop-badge{text-transform:uppercase;font-size:11px;font-weight:600;color:#555}.run-time{font-size:12px;color:#888}.status-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.status-running{background:#e0edff;color:#1d4ed8}.status-awaiting_human{background:#fff3cd;color:#92660a}.status-completed{background:#dcfce7;color:#15803d}.status-failed{background:#fde2e1;color:#b3261e}.status-pending_setup{background:#eee;color:#666}.status-active{background:#dcfce7;color:#15803d}.status-paused{background:#fff3cd;color:#92660a}.status-deprecated{background:#eee;color:#666}.empty-state{padding:16px;color:#888;text-align:center}.sources-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px}.search-box{flex:1;padding:8px;border:1px solid #ccc;border-radius:4px}.primary-button{padding:8px 16px;background:#2b3a55;color:#fff;border:none;border-radius:4px;cursor:pointer}.source-table{width:100%;border-collapse:collapse;background:#fff}.source-table th,.source-table td{text-align:left;padding:10px;border-bottom:1px solid #e5e7eb}.source-form{display:flex;flex-direction:column;gap:10px;background:#fff;padding:16px;border-radius:8px;margin-bottom:16px;max-width:480px}.source-form label{display:flex;flex-direction:column;gap:4px;font-size:14px}.source-form input,.source-form select,.source-form textarea{padding:8px;border:1px solid #ccc;border-radius:4px}.form-actions{display:flex;gap:8px}.back-link{background:none;border:none;color:#2b3a55;cursor:pointer;padding:0;margin-bottom:12px;font-size:14px}.lifecycle-buttons{display:flex;gap:8px;margin:12px 0}.lifecycle-buttons button{padding:6px 12px;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer}.lifecycle-buttons button:disabled{opacity:.5;cursor:default}.history-timeline li{display:grid;grid-template-columns:180px 120px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #e5e7eb;align-items:center}.review-panel,.result-panel,.error-panel{background:#fff;padding:16px;border-radius:8px;margin:16px 0}.draft-text{white-space:pre-wrap;font-size:14px}.review-actions{display:flex;gap:8px;margin-top:12px}.review-actions button{padding:8px 16px;border-radius:4px;border:1px solid #ccc;cursor:pointer}.trace-toggle{margin-top:16px;background:none;border:1px solid #ccc;padding:6px 12px;border-radius:4px;cursor:pointer}.trace-section li{display:grid;grid-template-columns:100px 100px 160px 1fr;gap:12px;padding:6px 0;font-size:12px;color:#444;border-bottom:1px solid #eee}
