:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;color:#172033;background:#f5f7fb;font-synthesis:none;--navy: #11192c;--blue: #2855d9;--line: #e4e8f0;--muted: #758096;--surface: #ffffff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{margin-bottom:7px;font-size:26px;letter-spacing:-.5px}h2{font-size:17px}.muted{color:var(--muted)}.page-loading,.app-loader{display:grid;min-height:50vh;place-items:center;color:var(--muted)}.primary-button,.secondary-button,.icon-button,.ghost-button{align-items:center;border:0;border-radius:8px;display:inline-flex;gap:8px;justify-content:center}.primary-button{padding:11px 17px;color:#fff;background:var(--blue);font-weight:600}.primary-button:hover{background:#1d46c3}.primary-button:disabled{cursor:wait;opacity:.65}.secondary-button{padding:9px 14px;color:#2c3850;background:#fff;border:1px solid var(--line);font-weight:600}.icon-button{width:38px;height:38px;color:#657087;background:#fff;border:1px solid var(--line)}.wide{width:100%}.login-page{display:grid;min-height:100vh;padding:24px;place-items:center;background:#10182b}.login-panel{width:min(420px,100%);padding:40px;border-radius:14px;background:#fff;box-shadow:0 22px 70px #050a1766}.login-mark{display:grid;width:52px;height:52px;margin-bottom:24px;place-items:center;color:#fff;border-radius:13px;background:var(--blue)}.login-panel h1{margin-bottom:8px}.login-panel p{margin-bottom:30px;color:var(--muted)}.login-panel label{display:grid;gap:8px;margin-top:16px;color:#3f4a60;font-size:13px;font-weight:600}.login-panel input,.comment-field textarea{width:100%;padding:12px;color:#172033;border:1px solid #dce1ea;border-radius:8px;outline:none}.login-panel input:focus,.comment-field textarea:focus{border-color:#7392e7;box-shadow:0 0 0 3px #2855d917}.login-button{width:100%;margin-top:24px}.form-error{display:flex;gap:7px;margin-top:15px;padding:10px;color:#a92e38;border-radius:7px;background:#fff0f1;font-size:13px}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:10;display:flex;width:185px;padding:22px 13px 14px;flex-direction:column;color:#c7cddd;background:var(--navy)}.brand{display:flex;gap:10px;align-items:center;padding:0 10px 24px;color:#fff;font-size:16px;font-weight:700}.brand svg{color:#7996ef}.sidebar nav{flex:1}.nav-label{margin:10px 11px;color:#657089;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.nav-item{display:flex;gap:11px;align-items:center;margin:3px 0;padding:10px 11px;border-radius:7px;font-size:13px;font-weight:500}.nav-item:hover{color:#fff;background:#1a2540}.nav-item.active{color:#fff;background:#2855d9}.sidebar-footer{padding-top:12px;border-top:1px solid #263149}.user-block{display:flex;min-width:0;gap:9px;align-items:center;padding:7px 6px 12px}.user-avatar{display:grid;width:31px;height:31px;flex:0 0 auto;place-items:center;color:#fff;border-radius:50%;background:#485675;font-size:12px;font-weight:700}.user-block div:last-child{min-width:0}.user-block strong,.user-block small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-block strong{color:#f5f7fc;font-size:11px}.user-block small{margin-top:3px;color:#737f99;font-size:10px;text-transform:uppercase}.sidebar-action{width:100%;padding:7px;color:#aeb7c9;background:transparent;font-size:12px}.collapse-label{display:flex;width:100%;gap:7px;align-items:center;padding:10px 7px 0;color:#68748d;border:0;background:transparent;font-size:11px}.workspace{width:calc(100% - 185px);min-width:0;margin-left:185px}.page,.detail-page{padding:27px 30px 50px}.page-header{display:flex;margin-bottom:23px;justify-content:space-between;align-items:start}.page-header p{margin-bottom:0;color:var(--muted);font-size:13px}.page-actions{display:flex;gap:9px}.detail-heading{display:flex;margin-bottom:18px;align-items:center;justify-content:space-between}.back-link{display:block;margin-bottom:6px;color:#5670a4;font-size:11px}.filters{display:flex;gap:10px;margin-bottom:15px}.filters select{min-width:170px;padding:0 12px;color:#49556c;border:1px solid var(--line);border-radius:8px;background:#fff}.search-field{display:flex;min-width:280px;flex:1;gap:9px;align-items:center;padding:0 12px;color:#8a94a7;border:1px solid var(--line);border-radius:8px;background:#fff}.search-field input{width:100%;padding:10px 0;border:0;outline:0}.search-field.standalone{width:min(470px,100%);margin-bottom:15px}@media(max-width:850px){.sidebar{width:68px}.brand span,.nav-item span,.nav-label,.user-block div:last-child,.sidebar-action,.collapse-label{display:none}.brand,.nav-item{justify-content:center;padding-inline:0}.workspace{width:calc(100% - 68px);margin-left:68px}.page,.detail-page{padding:22px 18px}}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric,.surface-panel,.overview-section,.table-surface,.card-list{border:1px solid var(--line);border-radius:9px;background:var(--surface)}.metric{display:flex;min-height:92px;gap:13px;align-items:center;padding:18px}.metric>svg{color:#6880af}.metric-success>svg{color:#278563}.metric-warning>svg{color:#d1871e}.metric-danger>svg{color:#ca4652}.metric span,.metric strong{display:block}.metric span{margin-bottom:5px;color:var(--muted);font-size:11px}.metric strong{font-size:21px}.overview-section{margin-top:20px;padding:20px}.activity-row{display:grid;grid-template-columns:repeat(3,1fr)}.activity-row div{padding:8px 18px;border-left:1px solid var(--line)}.activity-row div:first-child{padding-left:0;border-left:0}.activity-row span,.activity-row strong{display:block}.activity-row span{margin-bottom:6px;color:var(--muted);font-size:11px}.activity-row strong{font-size:13px}.table-surface{overflow:hidden}.data-table{display:grid;gap:14px;align-items:center}.run-table{grid-template-columns:1.1fr 1.1fr 1.1fr 1fr 1fr .7fr 20px}.links-table{grid-template-columns:1.1fr 1fr 1fr 1.3fr 1fr}.audit-table{grid-template-columns:1fr 1.2fr 1.1fr 1.1fr .8fr}.header-row{padding:10px 15px;color:#778197;border-bottom:1px solid var(--line);background:#fafbfc;font-size:10px;font-weight:700;text-transform:uppercase}.data-row{min-height:58px;padding:10px 15px;color:#3d4960;border-bottom:1px solid #edf0f5;font-size:12px}.data-row:last-child{border-bottom:0}.data-row:hover{background:#f9fbff}.data-row a{display:inline-flex;gap:4px;align-items:center;color:#305bc9;font-weight:600}.entity-cell small{display:block;margin-top:4px;color:#8992a3}.status-badge{display:inline-flex;gap:6px;align-items:center;width:fit-content;padding:7px 10px;color:#667187;border-radius:20px;background:#eef1f5;font-size:12px;font-weight:600;white-space:nowrap}.status-badge.compact{padding:5px 8px;font-size:10px}.status-synced,.status-succeeded,.status-resolved{color:#227657;background:#e7f6ef}.status-failed{color:#ac3540;background:#fdebed}.status-needs_review,.status-pending,.status-expired{color:#9b670e;background:#fff4d8}.status-running{color:#2855d9;background:#eaf0ff}.empty-state{padding:50px 20px;text-align:center;color:var(--muted)}.card-list{overflow:hidden}.conflict-row{display:grid;width:100%;min-height:76px;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:14px 17px;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff}.conflict-row:hover{background:#fafcff}.conflict-row div span,.conflict-row div small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.health-banner{display:flex;gap:13px;align-items:center;margin-bottom:16px;padding:17px;color:#246d53;border:1px solid #b9e2d2;border-radius:9px;background:#edf9f4}.health-banner strong,.health-banner span{display:block}.health-banner span{margin-top:3px;font-size:12px}.system-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:15px}.surface-panel{padding:19px}.surface-panel h2{display:flex;gap:8px;align-items:center}.surface-panel dl div,.system-row{display:flex;padding:10px 0;justify-content:space-between;border-bottom:1px solid #eef1f5;font-size:12px}.surface-panel dt{color:var(--muted)}.surface-panel dd{font-weight:700}.system-row div span{display:block;margin-top:4px;color:var(--muted)}.system-row small,.system-row>span{color:var(--muted)}.migrations{margin-top:15px}.result-succeeded{color:#237658}.result-failed{color:#ad3441}@media(max-width:1050px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.data-table{min-width:850px}.table-surface{overflow-x:auto}}@media(max-width:650px){.metrics-grid,.system-grid{grid-template-columns:1fr}.filters{flex-direction:column}.search-field{min-width:0}}.run-summary,.entity-links{display:flex;gap:26px;align-items:center;padding:15px 18px;border:1px solid var(--line);background:#fff}.run-summary{border-radius:9px 9px 0 0}.run-summary>div span,.entity-links span{display:block;margin-bottom:4px;color:var(--muted);font-size:10px}.run-summary strong,.entity-links strong,.entity-links a{font-size:11px}.trace-field{min-width:0;margin-left:auto}.trace-field strong{display:inline-block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.trace-field button{color:#768197;border:0;background:transparent}.entity-links{border-top:0;border-radius:0 0 9px 9px}.entity-links div{min-width:160px}.entity-links a{display:flex;gap:5px;align-items:center;color:#2d59cc;font-weight:600}.detail-grid{display:grid;grid-template-columns:minmax(420px,1.25fr) minmax(320px,.75fr);gap:14px;margin-top:15px}.timeline-surface,.step-details{min-height:calc(100vh - 250px);border:1px solid var(--line);border-radius:9px;background:#fff}.timeline{padding:18px}.timeline-step{position:relative;display:grid;width:100%;grid-template-columns:54px 31px 1fr auto;gap:8px;align-items:center;padding:8px 9px;text-align:left;border:0;border-radius:7px;background:transparent}.timeline-step:hover,.timeline-step.selected{background:#f4f7ff}.timeline-step:after{position:absolute;top:38px;bottom:-8px;left:78px;width:1px;content:"";background:#dfe4ed}.timeline-step:last-child:after{display:none}.timeline-time{color:#8d96a8;font-size:9px;text-align:right}.timeline-icon{z-index:1;display:grid;width:27px;height:27px;place-items:center;color:#3867d5;border-radius:50%;background:#edf2ff}.timeline-icon.step-succeeded{color:#27805f;background:#e8f6ef}.timeline-icon.step-failed{color:#ad3641;background:#fdebed}.timeline-content strong,.timeline-content small{display:block}.timeline-content strong{margin-bottom:3px;font-size:11px}.timeline-content small{color:var(--muted);font-size:9px}.step-label{color:#6d788c;font-size:9px}.step-details{overflow:hidden}.step-detail-header{display:flex;padding:17px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.step-detail-header span{color:var(--muted);font-size:9px}.step-detail-header h2{margin:4px 0 0;font-size:13px}.json-panel{margin:15px}.json-panel h3,.diff-section h3{color:#778197;font-size:10px;text-transform:uppercase}.json-panel pre{max-height:310px;margin:0;padding:13px;overflow:auto;color:#cbd4e7;border-radius:7px;background:#131b2d;font:10px/1.6 ui-monospace,monospace}.diff-section{padding:15px 15px 0}.write-row{padding:10px;border:1px solid #e5e9f0;border-radius:6px}.write-row+.write-row{margin-top:7px}.write-row strong,.write-row span{display:block;font-size:10px}.write-row span{margin-top:3px;color:var(--muted)}.manual-review-panel{margin:14px;padding:12px;border:1px solid #f0d5a1;border-radius:7px;background:#fffaf0}.manual-review-title{display:flex;gap:8px;color:#b16b09}.manual-review-title h3{margin:0 0 3px;color:#353f53;font-size:11px}.manual-review-title span{color:#8b7556;font-size:9px}.review-candidates{display:grid;gap:6px;margin-top:10px}.review-candidate{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;padding:7px;border-radius:5px;background:#fff;font-size:9px}.review-candidate span{color:var(--muted)}.review-candidate small{color:#8b94a4;text-transform:uppercase}.review-candidate.accepted small{color:#27805f}.manual-review-panel p{margin:8px 0 0;color:#725f42;font-size:9px}.inline-message{margin-bottom:10px;padding:9px 12px;color:#2855d9;border-radius:7px;background:#eaf0ff;font-size:11px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;justify-content:end;background:#10182770}.drawer{width:min(560px,95vw);height:100%;padding:23px;overflow-y:auto;background:#f7f9fc;box-shadow:-16px 0 50px #0b112633}.drawer-header{display:flex;align-items:start;justify-content:space-between}.drawer-header span{color:var(--muted);font-size:11px}.drawer-header h2{margin-top:6px;font-size:20px}.source-card,.candidate-card{border:1px solid var(--line);border-radius:8px;background:#fff}.source-card{display:grid;gap:6px;margin:12px 0;padding:15px}.source-card span,.source-card small{color:var(--muted);font-size:11px}.source-card a{color:var(--blue);font-weight:700}.candidate-list{display:grid;gap:9px}.candidate-card{display:grid;width:100%;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;padding:13px;text-align:left}.candidate-card.selected{border-color:#5578dc;box-shadow:0 0 0 2px #2855d912}.candidate-card strong,.candidate-card span,.candidate-card small{display:block}.candidate-card span,.candidate-card small{margin-top:4px;color:var(--muted);font-size:10px}.candidate-card a{display:flex;gap:4px;align-items:center;color:var(--blue);font-size:10px}.radio-dot{width:14px;height:14px;border:1px solid #b8c1d1;border-radius:50%}.candidate-card.selected .radio-dot{border:4px solid var(--blue)}.comment-field{display:grid;gap:7px;margin:16px 0;color:#566177;font-size:11px;font-weight:600}.comment-field textarea{min-height:70px;resize:vertical}@media(max-width:1050px){.detail-grid{grid-template-columns:1fr}}@media(max-width:700px){.run-summary,.entity-links{flex-wrap:wrap}.trace-field{width:100%;margin-left:0}}
