:root{color-scheme:light;--navy:#13223d;--navy-2:#1c3155;--blue:#1769e0;--blue-soft:#eaf2ff;--bg:#f4f6fa;--panel:#fff;--ink:#172033;--muted:#68748a;--line:#dce2ec;--ok:#16794b;--warn:#a86200;--bad:#b52a35}*{box-sizing:border-box}html,body,#app{min-height:100%}#app{min-height:100vh;display:flex;flex-direction:column}body{margin:0;font:14px/1.45 Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--blue);text-underline-offset:2px}.topbar{height:62px;padding:0 26px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:var(--navy);box-shadow:0 2px 12px #0d182c33}.brand{display:flex;gap:12px;align-items:center;height:100%}.brand-logo{flex:0 0 auto;width:50px;height:45px}.topnav{display:flex;align-items:stretch;height:100%;gap:4px}.topnav a{position:relative;display:flex;align-items:center;padding:0 14px;color:#dbe5f5;text-decoration:none;font-weight:700}.topnav a:hover{color:#fff;background:#ffffff0a}.topnav a.active{color:#fff}.topnav a.active:after{content:"";position:absolute;right:14px;bottom:0;left:14px;height:3px;border-radius:3px 3px 0 0;background:#fff}.connection{display:flex;align-items:center;gap:8px;color:#dbe5f5}.connection i{width:9px;height:9px;border-radius:50%;background:#f0a22e}.connection.connected i{background:#35c77d}.subtabs{display:flex;align-items:stretch;height:46px;padding:0 26px;gap:4px;background:var(--navy-2);box-shadow:inset 0 -1px #ffffff14}.subtabs a{position:relative;display:flex;align-items:center;padding:0 14px;color:#c9d6ec;text-decoration:none;font-weight:700;font-size:13px}.subtabs a:hover,.subtabs a.active{color:#fff;font-weight:900}.topbar-actions{display:flex;align-items:center;gap:14px}.secondary.compact{padding:6px 10px}.login-page{flex:1;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,var(--bg),#e7edf7)}.login-card{width:min(420px,100%);display:grid;gap:14px;padding:30px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 50px #1720331f}.login-card h1,.login-card p{margin:0}.login-card>p{color:var(--muted)}.login-card label{display:grid;gap:5px;color:#4d596d;font-weight:600}.login-brand{color:var(--blue);font-size:21px;font-weight:900}.layout{min-height:calc(100vh - 140px);flex:1;display:grid;grid-template-columns:320px 1fr}.sidebar{overflow:auto;padding:22px 16px;background:#fff;border-right:1px solid var(--line)}.sidebar-title{display:flex;justify-content:space-between;align-items:center;margin:0 4px 16px}.sidebar-title small,.workspace-head small,.modal-card small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.sidebar h1{margin:2px 0 0;font-size:23px}.icon-button{display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;width:38px;height:38px;background:var(--blue);color:#fff;font-size:24px;line-height:1}.control{width:100%;border:1px solid #ccd4e2;border-radius:7px;background:#fff;padding:9px 11px;color:var(--ink)}.control:focus,.code-editor:focus{outline:2px solid #8cb8f5;border-color:var(--blue)}.application-list{display:grid;gap:8px;margin-top:14px}.application-item{width:100%;text-align:left;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fff}.application-item:hover,.application-item.active{border-color:#91b8ef;background:var(--blue-soft)}.application-item strong{display:block;overflow:hidden;text-overflow:ellipsis}.application-item footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;color:var(--muted);font-size:12px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#edf0f5;color:#435069;font-weight:700;font-size:12px}.badge.Opened,.badge.Valid,.badge.DocumentsAccepted,.badge.Completed{background:#e4f5ec;color:var(--ok)}.badge.Rejected,.badge.Failed,.badge.Error,.badge.NotValid,.badge.Cancelled{background:#fdebed;color:var(--bad)}.badge.Processing,.badge.Sending,.badge.AwaitingDocuments,.badge.Waiting,.badge.Pending,.badge.Running,.badge.Scheduled{background:#fff2dc;color:var(--warn)}.empty-state{margin:auto;text-align:center;max-width:500px;padding:40px}.empty-symbol{color:var(--blue);font-size:28px;font-weight:900}.empty-state h2{font-size:26px;margin:16px 0 6px}.empty-state p{color:var(--muted);margin-bottom:22px}.empty-state p a{color:var(--blue);font-weight:700;text-underline-offset:3px}.contract-version{display:grid;gap:6px;max-width:260px;margin:0 auto 14px;color:var(--muted);text-align:left;font-weight:600}.workspace{min-width:0;overflow:auto;padding:24px 30px 50px}.workspace-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.workspace-head h2{margin:3px 0 0;font:700 20px ui-monospace,monospace}.head-actions,.action-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.primary,.secondary,.file-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid transparent;border-radius:7px;padding:9px 14px;font-weight:700}.primary{color:#fff;background:var(--blue)}.secondary,.file-button{color:var(--ink);background:#fff;border-color:#cbd4e2}.file-button input{display:none}.danger{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d98c93;border-radius:7px;padding:9px 14px;color:var(--bad);background:#fff;font-weight:700}.file-button.disabled{cursor:not-allowed;opacity:.55}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin:22px 0 18px}.tabs button{padding:10px 14px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:700}.tabs button.active{border-bottom-color:var(--blue);color:var(--blue)}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:16px}.summary-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px #24365b0a}.summary-card{padding:15px}.summary-card span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.summary-card strong,.summary-card code{overflow-wrap:anywhere}.panel{padding:18px}.panel.narrow{max-width:640px;display:grid;gap:15px}.panel-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.panel-heading h3{margin:0;font-size:17px}.panel-heading h4{margin:0;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.panel-heading span{color:var(--muted);font-size:12px}.connection-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;margin-top:18px}.connection-columns .panel.narrow{max-width:none}.checkbox-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-weight:600;color:#4d596d}.pem-field{min-height:90px;font-size:11px}.connection-head{justify-content:flex-start}.field-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px}.field-row .bootstrap-field{flex:1 1 auto}.field-row .checkbox-row{flex:0 0 auto;padding-bottom:10px;white-space:nowrap}.kafka-topics-grid{margin-top:0}.connection-check-list{display:grid;gap:10px}.connection-check-row{display:flex;gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px}.connection-check-row .badge{flex:0 0 auto}.connection-check-row small{display:block;color:var(--muted);margin-top:2px}.connection-check-row p{margin:6px 0 0}.timeline{display:grid;gap:0}.timeline-entry{position:relative;padding:0 0 18px 25px;border-left:2px solid #dbe4f2;margin-left:6px}.timeline-entry:before{content:"";position:absolute;left:-6px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--blue)}.timeline-entry header{display:flex;justify-content:space-between;gap:10px}.timeline-entry time{color:var(--muted);font-size:12px}.timeline-entry pre{margin:5px 0 0;color:var(--muted);white-space:pre-wrap;word-break:break-word;font-size:12px}.automation-panel{margin-bottom:16px}.automation-timeline{display:grid;gap:9px;margin-bottom:14px}.automation-step{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px 18px;padding:12px;border-left:4px solid #aab5c7;border-radius:7px;background:#f7f9fc}.automation-step.Completed{border-left-color:var(--ok)}.automation-step.Running,.automation-step.Pending{border-left-color:var(--warn)}.automation-step.Failed{border-left-color:var(--bad)}.automation-step>div{display:grid;gap:3px}.automation-step>div:last-of-type{justify-items:end}.automation-step small{color:var(--muted)}.automation-error{grid-column:1/-1;margin:0;color:var(--bad)}.retry-action{grid-column:1/-1;justify-self:start}.document-list,.message-log{display:grid;gap:9px;margin-top:17px}.document-row,.message-row{border:1px solid var(--line);border-radius:8px;padding:12px}.document-row header,.message-row header{display:flex;justify-content:space-between;gap:12px}.document-row small,.message-row small{display:block;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.document-row code{font-size:11px}.upload-editor{margin-top:14px;padding:14px;background:#f7f9fc;border-radius:8px}.upload-line{display:grid;grid-template-columns:1fr 220px 180px;gap:10px;align-items:center;margin-bottom:8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px;margin-top:17px}.form-grid label,.narrow label,.modal-card label{display:grid;gap:5px;color:#4d596d;font-weight:600}.message-row.out{border-left:4px solid var(--blue)}.message-row.in{border-left:4px solid var(--ok)}.message-row pre{max-height:260px;overflow:auto;margin:9px 0 0;padding:10px;border-radius:6px;background:#182238;color:#dce7fb;font-size:11px;white-space:pre-wrap;word-break:break-word}.dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:16px;background:#0d1729a8}.modal-card{width:min(900px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:20px;display:grid;gap:14px;border-radius:12px;background:#fff;box-shadow:0 24px 80px #07112466}.modal-card header{display:flex;justify-content:space-between}.modal-card h2{margin:2px 0 0}.close-button{border:0;background:transparent;font-size:28px;color:var(--muted)}.code-editor{min-height:340px;width:100%;resize:vertical;border:1px solid #ccd4e2;border-radius:8px;padding:12px;background:#182238;color:#e5edf9;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.modal-card footer{display:flex;justify-content:flex-end;gap:9px}.modal-error{min-height:20px;margin:0;color:var(--bad)}.scenario-card{width:min(660px,calc(100vw - 32px))}.mode-picker{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:12px}.mode-picker legend{padding:0 5px;font-weight:700}.mode-picker label{display:flex;align-items:flex-start;gap:9px;padding:9px;border-radius:7px;background:#f7f9fc}.mode-picker span{display:grid;gap:3px}.mode-picker small{color:var(--muted);text-transform:none;letter-spacing:normal;font-size:12px}.scenario-settings{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}.scenario-settings label{display:grid;gap:5px;color:#4d596d;font-weight:600}.toast{position:fixed;z-index:40;right:22px;bottom:22px;max-width:440px;padding:12px 16px;border-radius:8px;background:#17243d;color:#fff;box-shadow:0 6px 28px #0004}.muted{color:var(--muted)}.site-footer{min-height:32px;padding:7px 20px;text-align:center;color:#cbd7e9;background:var(--navy);font-size:12px}@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(3,1fr)}.head-actions{justify-content:flex-end}}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);max-height:320px}.workspace{padding:18px}.summary-grid{grid-template-columns:repeat(2,1fr)}.connection-columns{grid-template-columns:1fr}}@media(max-width:600px){.workspace-head{align-items:start;flex-direction:column}.tabs{overflow:auto}.summary-grid,.form-grid,.scenario-settings,.automation-step{grid-template-columns:1fr}.automation-step>div:last-of-type{justify-items:start}.upload-line{grid-template-columns:1fr}.topbar{height:auto;min-height:62px;padding:0 10px}.brand{gap:5px}.subtabs{padding:0 10px}.topnav a{padding:0 7px;font-size:13px}.topnav a.active:after{right:7px;left:7px}.connection span{display:none}.layout{min-height:calc(100vh - 140px)}}
