:root{--bg: #e8eef2;--bg-accent: #d5e0e8;--panel: #f7fafc;--ink: #152028;--muted: #5a6b78;--line: #c5d0d8;--brand: #00aeef;--brand-ink: #0088bb;--warn: #1f7a4d;--danger: #b42318;--dirty: #0f9d58;--font: "IBM Plex Sans", "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#cfe0ea 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#d7ebe3 0%,transparent 50%),linear-gradient(180deg,var(--bg),var(--bg-accent))}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--line);background:#f7fafceb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:.7rem;font-weight:700;letter-spacing:.02em;font-size:1.15rem;min-width:0}.brand-logo{height:44px;width:auto;display:block;object-fit:contain}.brand-name{color:#1a2228;white-space:nowrap}.brand-name em{font-style:normal;color:var(--brand)}.topbar-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;color:var(--muted);font-size:.9rem}.topbar-meta select{border:1px solid var(--line);background:#fff;padding:.35rem .5rem;border-radius:4px}.layout{display:grid;grid-template-columns:220px 1fr;min-height:0;transition:grid-template-columns .2s ease}.app-shell.nav-collapsed .layout{grid-template-columns:0 1fr}.app-shell.nav-collapsed .nav{overflow:hidden;padding:0;border-right-width:0;opacity:0;pointer-events:none}.nav{border-right:1px solid var(--line);background:#f7fafcd9;padding:1rem .75rem;display:flex;flex-direction:column;gap:.35rem;min-width:0}.nav a{padding:.55rem .7rem;border-radius:6px;color:var(--muted);font-weight:500;white-space:nowrap}.nav a.active,.nav a:hover{background:#e7f3ee;color:var(--brand-ink)}.nav-toggle{min-width:36px;padding:.35rem .5rem}.scope-chip{padding:.3rem .65rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.85rem;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-chip:hover{color:var(--brand-ink);border-color:var(--brand)}.zoom-controls{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.85rem}.zoom-controls .btn{min-width:32px;padding:.25rem .45rem}.main{padding:1rem 1.25rem 2rem;min-width:0;background:#fff}.main:fullscreen{padding:1rem;overflow:auto;background:#f4f7f9}.fs-zoom-bar{position:sticky;top:0;z-index:40;display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.75rem;padding:.4rem .6rem;background:#fffffff2;border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 8px #15202814}.main .table-wrap,.main .matrix-wrap{zoom:var(--table-zoom, 1)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1rem;box-shadow:0 1px #1520280a}.panel-head{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:.85rem}.panel-head h1{margin:0;font-size:1.2rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--line);background:#fff}.badge.dirty{border-color:var(--dirty);color:var(--dirty);box-shadow:inset 0 0 0 1px #0f9d5840}.actions{display:flex;flex-wrap:wrap;gap:.5rem}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:.4rem .75rem;border-radius:6px;cursor:pointer;font-weight:500}.btn:hover{background:#eef4f7}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-ink)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.table-wrap:focus{outline:none}table.data{border-collapse:collapse;width:100%;min-width:960px;font-size:.85rem;-webkit-user-select:none;user-select:none}table.data th,table.data td{border-bottom:1px solid var(--line);border-right:1px solid #e8eef2;padding:.35rem .45rem;text-align:left;vertical-align:top;min-width:72px;max-width:260px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}table.data th{position:sticky;top:0;background:#edf3f7;font-weight:600;z-index:1}table.data tr.dirty-row td:first-child{box-shadow:inset 3px 0 0 var(--dirty)}table.data tr.missing-drp{background:#fff6f4}table.data tr.missing-drp td:first-child{color:var(--danger);font-weight:600}.stat-strip{display:flex;gap:1.25rem;margin:0 0 .75rem;font-weight:600;font-family:var(--mono);font-size:.9rem}.header-input{width:100%;border:none;background:transparent;font:inherit;font-weight:600;padding:0}td{position:relative}#axi-overlay-root{position:static}.suggest-menu{position:fixed;z-index:1100;display:flex;flex-direction:column;max-height:280px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #0000002e;overflow:hidden}.suggest-head{padding:.3rem .5rem;font-size:.75rem;color:var(--muted, #6b7c88);background:#f4f7f9;border-bottom:1px solid var(--line)}.suggest-list{display:grid;overflow:auto}.suggest-list button,.suggest-foot button{text-align:left;border:none;background:transparent;padding:.3rem .5rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggest-list button:hover,.suggest-foot button:hover{background:#eef4f7}.suggest-foot{display:grid;border-top:1px solid var(--line)}.suggest-foot button{color:var(--brand)}.dialog-msg{margin:.75rem 0 1rem;line-height:1.6}.dialog-field{display:grid;gap:.35rem;margin:.75rem 0 1rem}.dialog-field input{padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.color-menu{position:fixed;z-index:1000;display:flex;flex-direction:column;gap:6px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 12px #00000029}.color-row{display:flex;gap:4px}.cell-menu-actions{display:grid;border-top:1px solid var(--line);padding-top:4px}.color-menu:has(.cell-menu-actions):not(:has(.color-row)) .cell-menu-actions{border-top:none;padding-top:0}.cell-menu-actions button{text-align:left;border:none;background:transparent;padding:.35rem .4rem;cursor:pointer}.cell-menu-actions button:hover{background:#eef4f7}.cell-menu-actions button.danger{color:var(--danger)}.color-swatch{width:16px;height:16px;border:1px solid #ccc;border-radius:3px;cursor:pointer;padding:0}.ver-chip{display:inline-flex;gap:.5rem;align-items:center;margin-left:0}.linkish{border:none;background:none;color:var(--brand);cursor:pointer;padding:0;font:inherit}.matrix-wrap{max-height:72vh}table.matrix th.split{box-shadow:inset -2px 0 #0b6e4f}table.matrix .cfg-col{min-width:88px;background:#f3faf7;text-align:center}table.matrix .mark-cell{cursor:pointer;font-weight:700;text-align:center}table.matrix .mark-cell:hover{background:#d8efe4}td.cell-dirty,th.cell-dirty{outline:2px solid #0f9d58;outline-offset:-2px}.change-block{margin-bottom:.75rem}.change-list{margin:.3rem 0 .6rem;padding-left:1.1rem;font-size:.82rem}.ver-block{margin-top:.35rem}.table-wrap.is-painting{-webkit-user-select:none;user-select:none;cursor:cell}textarea.cell-text{-webkit-user-select:text;user-select:text}td.cell-selected,th.cell-selected{box-shadow:inset 0 0 0 2px #217346;background-image:linear-gradient(#21734638,#21734638)}.cell-text{display:block;width:100%;min-height:1.25em;margin:0;padding:0;border:none;resize:none;overflow:hidden;background:transparent;color:inherit;font:inherit;font-family:var(--mono);font-size:.8rem;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}textarea.cell-text:focus{outline:none;background:#f3faf7}.color-val{display:inline-flex;align-items:center;gap:4px}.color-val i{display:inline-block;width:10px;height:10px;border:1px solid #bbb}table.data input:focus,table.data select:focus{outline:none;border-color:var(--brand);background:#f3faf7}table.data td.readonly{color:var(--muted);font-family:var(--mono);font-size:.8rem}.history{margin-top:.75rem;font-size:.85rem;color:var(--muted)}.history ul{margin:.35rem 0 0;padding-left:1.1rem}.login{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);align-items:center;padding:6vh 6vw 8vh;background:#eef2f5 url(/login-bg.jpg) center / cover no-repeat}.login-card{grid-column:2;justify-self:center;width:min(400px,100%);background:transparent;border:none;border-radius:16px;padding:1.1rem 1.4rem 1.25rem}.login-card h1{margin:0 0 .35rem;font-size:1.65rem;letter-spacing:.04em}.login-brand{display:none}.login-brand img{width:min(180px,56%);height:auto;display:block}.login-card p{margin:0 0 1rem;color:var(--muted)}@media(max-width:860px){.login{grid-template-columns:1fr;align-items:end;padding:1.25rem;background-position:8% 0;background-size:auto 58vh;background-color:#f3f6f8}.login-card{grid-column:1;width:100%;background:#fffffff0;box-shadow:0 12px 32px #15202814;padding:1.25rem}.login-brand{display:grid;place-items:center;margin:0 0 .75rem}}.login-form{display:grid;gap:.75rem}.login-form label{display:grid;gap:.3rem;font-size:.9rem}.login-form input{padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;font:inherit}.user-admin-create{margin-bottom:1.25rem}.user-admin-create h2{margin:0 0 .6rem;font-size:1rem}.user-admin-form{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:end}.user-admin-form label{display:grid;gap:.25rem;font-size:.85rem}.user-admin-form label.check{display:flex;align-items:center;gap:.35rem}.user-admin-form input[type=text],.user-admin-form input[type=password],.user-admin-form input:not([type]){padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px;min-width:160px}.user-admin-actions{display:flex;flex-wrap:wrap;gap:.35rem}.user-list{display:grid;gap:.5rem}.user-list button{text-align:left;padding:.7rem .8rem;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer}.user-list button:hover{border-color:var(--brand);background:#eef8f3}.user-list strong{display:block}.user-list span{color:var(--muted);font-size:.85rem}.mes-grid{display:grid;gap:.75rem}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#15202859;z-index:50;display:grid;place-items:center;padding:1.5rem}.modal{width:min(640px,100%);max-height:min(80vh,720px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem 1.2rem;box-shadow:0 12px 40px #1520282e}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}table.data.fixed{table-layout:fixed}th{position:relative}.col-resizer,.row-resizer{position:absolute;z-index:3}.col-resizer{top:0;right:-3px;width:7px;height:100%;cursor:col-resize}.row-resizer{left:0;bottom:-3px;width:100%;height:7px;cursor:row-resize}table.data th.matrix-title{background:#e7f3ee;text-align:center;font-size:var(--bm-title-size, 2.4rem);font-weight:800;vertical-align:middle!important;max-width:none;min-width:0;min-height:180px;padding:1rem 1.25rem}table.data th.matrix-title .cell-text{font-family:inherit;font-size:inherit;font-weight:800;line-height:1.25;text-align:center;min-height:2.6em}th.col-split,td.col-split{border-right:5px solid #111!important}.col-grip{position:absolute;left:2px;top:50%;z-index:2;transform:translateY(-50%);width:10px;height:16px;cursor:grab;opacity:.45;background:repeating-linear-gradient(90deg,#7a8a96,#7a8a96 1px,transparent 1px,transparent 3px)}.col-grip:active{cursor:grabbing}th.is-drag-over{outline:2px dashed var(--brand)}table.data.matrix thead tr:not(:last-child) th{position:relative;top:auto;z-index:1}table.data.matrix thead tr:last-child th{position:sticky;top:0;z-index:3}table.data.matrix th.cfg-name{background:#e8f4fb;font-weight:700;min-width:88px}table.data.matrix th.cfg-name.is-editing{outline:2px solid var(--brand);outline-offset:-2px}th.cfg-attr-label{width:108px;min-width:88px;max-width:140px;background:#f4f8fa;font-size:.75rem;font-weight:600;color:#4a5d68;white-space:nowrap;vertical-align:middle}th.cfg-attr-label.is-editing{outline:2px solid var(--brand);outline-offset:-2px}th.cfg-attr-label .cell-text{font-size:inherit;font-weight:inherit;color:inherit;min-height:1.2em}th.cfg-attr-label textarea.cell-text{font-size:inherit;font-weight:inherit;color:inherit;padding:0;min-height:1.2em}td.attr-gutter{width:108px;min-width:88px;max-width:140px;background:#f7fafb;padding:0}.banner-row td{background:#d7ebe3;font-weight:700;text-align:left}.row-ins{position:relative;display:inline-block;margin-right:4px;vertical-align:middle}.row-ins-btn{width:18px;height:18px;padding:0;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:12px;line-height:16px}.row-ins-menu{z-index:40;display:grid;min-width:168px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 12px #0000001f}.row-ins-menu button{text-align:left;border:none;background:#fff;padding:.35rem .55rem;cursor:pointer}.row-ins-menu button:hover{background:#eef8f3}@media(max-width:860px){.layout,.app-shell.nav-collapsed .layout{grid-template-columns:1fr}.nav{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line)}.app-shell.nav-collapsed .nav{display:none}}.overview-tree{display:grid;gap:.75rem}.overview-project{border:1px solid var(--line);border-radius:10px;background:#fff;padding:.55rem .75rem .75rem}.overview-stage{margin:.35rem 0 .35rem 1.1rem;padding-left:.35rem;border-left:2px solid #d5e4ec}.overview-processes{margin-left:1.25rem}.overview-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-height:2rem}.overview-row.process{padding:.25rem .4rem;border-radius:6px}.overview-row.process.active,.overview-row.process:hover{background:#eef8f3}.overview-toggle{border:none;background:transparent;cursor:pointer;width:1.4rem;color:var(--muted)}.overview-enter{border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;color:var(--ink);font-weight:600;padding:0}.overview-enter:hover{color:var(--brand-ink)}.overview-ops{margin-left:auto;display:inline-flex;gap:.5rem}.beta-tag{font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#e67e22;padding:.15rem .45rem;border-radius:4px}.feedback-dialog .field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.feedback-dialog .field span{font-size:.85rem;font-weight:600;color:var(--muted)}.feedback-dialog input,.feedback-dialog select,.feedback-dialog textarea{width:100%;padding:.45rem .55rem;border:1px solid var(--line);border-radius:6px;font:inherit}.feedback-page .panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem;margin-bottom:1rem}.feedback-page .panel h2{margin:0 0 .5rem;font-size:1rem}.feedback-fab-wrap{position:fixed;right:1.25rem;bottom:1.25rem;z-index:9000;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;pointer-events:none}.feedback-fab-wrap>*{pointer-events:auto}.feedback-fab{display:flex;align-items:center;gap:.4rem;padding:.65rem 1rem .65rem .85rem;border:none;border-radius:999px;background:linear-gradient(135deg,var(--brand) 0%,#027a9e 100%);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:0 4px 16px #049fd773;transition:transform .15s ease,box-shadow .15s ease}.feedback-fab:hover{transform:translateY(-2px);box-shadow:0 6px 20px #049fd78c}.feedback-fab-icon{font-size:1.15rem;line-height:1}.feedback-fab-secondary{position:relative;font-size:.75rem;padding:.35rem .65rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted);text-decoration:none;box-shadow:0 2px 8px #00000014}.feedback-fab-secondary:hover{color:var(--brand-ink);border-color:var(--brand)}.feedback-fab-badge{position:absolute;top:-6px;right:-4px;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:#e74c3c;color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center}.agent-hint{margin-top:.75rem;padding:.75rem;background:#f7f9fa;border-radius:6px;font-size:.85rem;white-space:pre-wrap}.small{font-size:.85rem}.feedback-list{display:flex;flex-direction:column;gap:1rem}.feedback-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem}.feedback-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.75rem}.fb-status{font-size:.75rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;background:#eef2f4;color:#4a5d68;white-space:nowrap}.fb-status.clarify{background:#fff3cd;color:#856404}.fb-status.pending{background:#d1ecf1;color:#0c5460}.fb-status.resolved{background:#d4edda;color:#155724}.fb-badge{color:var(--brand-ink);font-weight:600}.feedback-thread{display:flex;flex-direction:column;gap:.65rem;margin:.75rem 0}.fb-msg{padding:.55rem .75rem;border-radius:6px;background:#f7f9fa}.fb-msg-bot{background:#eef6ff;border-left:3px solid var(--brand)}.fb-msg-system{background:#f0f0f0;font-size:.9rem}.fb-msg-role{display:block;font-size:.7rem;font-weight:700;color:var(--muted);margin-bottom:.25rem}.feedback-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.feedback-actions.row{flex-direction:row;flex-wrap:wrap;align-items:flex-end}.feedback-reopen{display:flex;gap:.5rem;flex:1;min-width:240px}.feedback-reopen input{flex:1}.feedback-fix-summary{background:#f0faf0;padding:.5rem .75rem;border-radius:6px;font-size:.9rem}
