/* NOVA graphic profile v1.0. Original wordmark, icon set and self-hosted Jost. */
@font-face{font-family:Jost;src:url('brand/Jost-Variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
:root{
 --nova-aubergine:#342C3E;--nova-lime:#D4E66B;--nova-cyan:#69E2E8;--nova-violet:#BBA5FF;
 --nova-canvas:#211B29;--nova-surface:#40364C;--nova-chalk:#F5F1EA;--nova-muted:#C5BDCF;
 --nova-border:#8F829F;--nova-line:#61546F;--nova-success:#7EE2B8;--nova-warning:#FFD18A;--nova-error:#FF9EAB;
 --nova-info-bg:#293E48;--nova-success-bg:#283F3A;--nova-warning-bg:#483C31;--nova-error-bg:#49323E;
 color-scheme:dark;font-variant-numeric:tabular-nums;line-height:1.5
}
body{background:var(--nova-aubergine);color:var(--nova-chalk)}
a,summary{color:var(--nova-cyan)}
h1{font-size:32px;line-height:1.25;font-weight:500;letter-spacing:-.4px}
h2{font-size:24px;line-height:1.33;font-weight:500;letter-spacing:0}
h3{font-size:16px;font-weight:500}
button,.button{min-height:44px;border-radius:8px;font-size:14px;font-weight:500;border-color:var(--nova-border);background:transparent;color:var(--nova-chalk);transition:background 180ms ease}
button:hover,.button:hover{background:var(--nova-canvas);border-color:var(--nova-border)}
button.primary,.button.primary{color:var(--nova-aubergine);background:var(--nova-lime);border-color:var(--nova-lime);font-weight:600}
button.primary:hover,.button.primary:hover{background:#E0EE91;border-color:#E0EE91}
button.primary:active,.button.primary:active{background:#C3D651;border-color:#C3D651}
button.dark{background:var(--nova-canvas);color:var(--nova-chalk);border-color:var(--nova-border)}
button.danger{color:var(--nova-error)}
button.small,.button.small{font-size:14px;padding:8px 12px}
button.icon,.rule-drag-handle{min-width:44px;min-height:44px}
button:disabled{opacity:1;background:var(--nova-surface);color:var(--nova-muted);border-color:var(--nova-border);cursor:not-allowed}
:focus-visible{outline:2px solid var(--nova-cyan)!important;outline-offset:3px}
input:not([type=checkbox]),select,textarea{background:var(--nova-canvas);border:1px solid var(--nova-border);border-radius:8px;color:var(--nova-chalk);min-height:44px;font-size:14px}
input::placeholder,textarea::placeholder{color:var(--nova-muted);opacity:1}
input[type=checkbox]{accent-color:var(--nova-lime);width:18px;height:18px;cursor:pointer}
label.check{min-height:44px}label{font-size:14px;font-weight:500}
small,.hint{font-size:12px;color:var(--nova-muted)}
pre{background:var(--nova-canvas);color:var(--nova-chalk);border:1px solid var(--nova-line);line-height:1.6}
.shell{grid-template-columns:224px minmax(0,1fr)}
.sidebar{width:224px;background:var(--nova-canvas);padding:32px 16px;border-right:1px solid var(--nova-line);overflow-y:auto}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:0 8px;margin-bottom:36px;flex:none}
.nova-wordmark{width:144px;height:auto;display:block}
.nova-symbol{display:none}
.brand small{font-size:12px;line-height:16px;letter-spacing:1.3px;text-transform:uppercase;color:var(--nova-muted)}
.nav-label{font-size:12px;font-weight:500;color:var(--nova-muted);letter-spacing:1.2px}
.sidebar a{font-size:14px;min-height:48px;padding:12px;color:var(--nova-muted);border-radius:8px}
.sidebar a.active{background:#363A2C;color:var(--nova-lime);box-shadow:inset 3px 0 var(--nova-lime);font-weight:500}
.sidebar a:hover:not(.active){background:var(--nova-surface);color:var(--nova-chalk)}
.nav-icon{width:24px;height:24px;flex:none}.nav-icon svg{display:block}
.sidebar footer{font-size:12px;color:var(--nova-muted)}.sidebar footer .dot{background:var(--nova-success)}
.topbar{height:80px;background:var(--nova-aubergine);padding:0 32px;font-size:14px}
.topbar strong{font-size:14px;color:var(--nova-chalk)}.avatar{background:var(--nova-surface);color:var(--nova-lime);width:32px;height:32px}
.flow{color:var(--nova-muted);font-size:12px}.flow span.current{color:var(--nova-lime)}
.content{padding:32px 32px 64px;max-width:1440px}
.eyebrow,.section-label{font-size:12px;font-weight:500;color:var(--nova-muted)}
.page-head p{font-size:16px;line-height:24px}
.stats{gap:24px}.stat{padding:24px;border-radius:12px;background:var(--nova-surface)}
.stat strong{font-size:32px;line-height:36px;font-weight:500;letter-spacing:0}.stat label,.stat small{font-size:12px}
.card{background:var(--nova-surface);margin-bottom:24px}.card-head,.card-body{padding:24px}.card-head p{font-size:14px}
table{font-size:14px}th{background:var(--nova-canvas);color:var(--nova-muted);font-size:12px;font-weight:500;letter-spacing:.5px}
th,td{padding:14px 20px;border-color:var(--nova-line)}td{height:48px}tr:hover td{background:#483E54}
td .name{font-size:14px}td .sub{font-size:12px}.numeric,.field-inventory td:nth-child(2),.field-inventory td:nth-child(3){text-align:right}
.pill{font-size:12px;padding:5px 8px;line-height:16px;background:var(--nova-canvas);color:var(--nova-muted);gap:6px}
.pill.green,.output-badge{background:var(--nova-success-bg);color:var(--nova-success)}
.pill.green::before{content:'✓'}.pill.red::before{content:'!'}
.pill.yellow{background:var(--nova-warning-bg);color:var(--nova-warning)}
.pill.red{background:var(--nova-error-bg);color:var(--nova-error)}
.pill.blue{background:var(--nova-info-bg);color:var(--nova-cyan)}
.pill.gray{background:var(--nova-canvas);color:var(--nova-muted)}
.notice{background:var(--nova-info-bg);color:var(--nova-chalk);border-color:var(--nova-cyan);font-size:14px}
.notice.warn{background:var(--nova-warning-bg);color:var(--nova-warning);border-color:var(--nova-warning)}
.notice.error,.dialog-alert{background:var(--nova-error-bg);color:var(--nova-error);border-color:var(--nova-error)}
.step{background:var(--nova-canvas);color:var(--nova-muted);font-size:12px}.step.active{background:var(--nova-lime);color:var(--nova-aubergine)}
.progress-track{background:var(--nova-canvas)}.progress-track i{background:var(--nova-cyan)}progress{accent-color:var(--nova-cyan)}
.result-value,.suggested-value{color:var(--nova-success)}
.login{background:var(--nova-canvas);padding:32px 0}
.login-card{width:min(480px,calc(100% - 40px));background:var(--nova-aubergine);padding:40px;border-radius:12px;box-shadow:none}
.login-card .brand{margin-bottom:40px;gap:22px}.login-card .nova-wordmark{width:180px}.login-card h1{font-size:32px;font-weight:500}.login-card p{font-size:16px}
#toast{background:var(--nova-canvas);color:var(--nova-chalk);border:1px solid var(--nova-cyan)}#toast.error{background:var(--nova-error-bg);border-color:var(--nova-error)}
dialog{background:var(--nova-aubergine);border-color:var(--nova-border);border-radius:12px;color:var(--nova-chalk)}
dialog::backdrop{background:#15101dcc;backdrop-filter:blur(3px)}
.dialog-head,.dialog-foot{background:var(--nova-aubergine)}.dialog-head h2{font-size:24px}
.version-picker[open]>.stack{background:var(--nova-canvas)}
.viewer-summary,.record-list,.finding-values{background:var(--nova-canvas)}
.tab-buttons button{font-size:14px}.tab-buttons button.selected,.record-button.selected,.rule-item.selected{background:#363A2C;color:var(--nova-lime);border-color:var(--nova-lime)}
.record-button.selected{box-shadow:inset 3px 0 var(--nova-lime)}.record-button:hover{background:var(--nova-surface)}
.record-id,.product-facts,.field-section h3,.empty-value,.editor-status{color:var(--nova-muted)}
.finding-symbol{background:var(--nova-warning-bg);color:var(--nova-warning)}.finding-symbol.uncertain{background:var(--nova-info-bg);color:var(--nova-cyan)}
.finding-values .exact-value{background:var(--nova-surface);color:var(--nova-chalk)}
.batch-suggestion{background:var(--nova-info-bg);border-color:var(--nova-cyan)}
.mapping-destination{background:var(--nova-success-bg);border-color:var(--nova-success);color:var(--nova-chalk)}
.rule-current>.card-head,.rule-section-head{background:var(--nova-canvas)}.rule-section{background:var(--nova-aubergine)}
.branch-if{background:#293E48;border-color:var(--nova-cyan)}
.branch-then{background:var(--nova-success-bg);border-color:var(--nova-success)}
.branch-else{background:var(--nova-warning-bg);border-color:var(--nova-warning)}
.logic-badge{background:var(--nova-cyan);color:var(--nova-canvas);font-size:12px;font-weight:600}
.branch-then>.branch-heading .logic-badge{background:var(--nova-success);color:var(--nova-canvas)}
.branch-else>.branch-heading .logic-badge{background:var(--nova-warning);color:var(--nova-canvas)}
.rule-current .logic-all{background:#343B50;border-color:var(--nova-cyan)}
.rule-current .logic-any{background:#423851;border-color:var(--nova-violet)}
.logic-all>.logic-group-head .logic-badge{background:var(--nova-cyan);color:var(--nova-canvas)}
.logic-any>.logic-group-head .logic-badge{background:var(--nova-violet);color:var(--nova-canvas)}
.rule-current .action-row,.rule-condition{background:var(--nova-canvas);border-color:var(--nova-border)}
.rule-current .condition-row label,.rule-current .action-controls label{color:var(--nova-muted);font-size:12px}
.rule-current .condition-row select,.rule-current .action-controls select,.rule-current .condition-row input,.rule-current .action-controls input{font-size:14px}
.rule-list-entry .rule-item{font-size:14px}.rule-item .number{font-size:12px}
.rule-impact-status{background:var(--nova-success-bg);border-color:var(--nova-success)}
.rule-impact-count{background:var(--nova-canvas);color:var(--nova-chalk);border-color:var(--nova-border);font-weight:500}
.rule-impact-count.outdated{background:transparent;color:var(--nova-muted)}.rule-list-name .rule-impact-count{font-size:12px}
.rule-drop-slot{min-height:14px}.rule-drop-slot.available{min-height:44px;background:var(--nova-success-bg);color:var(--nova-success);border-color:var(--nova-success)}
.rule-drop-slot.available:hover,.rule-drop-slot.rule-drop-over{background:var(--nova-canvas);border-color:var(--nova-lime);color:var(--nova-lime)}
.rule-move-status{background:var(--nova-info-bg);border-color:var(--nova-cyan)}
.pending-rule-delete{outline:3px solid var(--nova-error)!important;box-shadow:none!important}
.rule-delete-confirm{background:var(--nova-error-bg);color:var(--nova-error);border-color:var(--nova-error)}
.rule-delete-confirm .hint{color:var(--nova-chalk)}.rule-delete-confirm button.danger{background:var(--nova-error);color:var(--nova-canvas);border-color:var(--nova-error)}
.verification-run{background:var(--nova-canvas)}.verification-run.working{background:var(--nova-info-bg);border-color:var(--nova-cyan)}
.verification-run.complete{background:var(--nova-success-bg);border-color:var(--nova-success)}.verification-run.warn{background:var(--nova-warning-bg);border-color:var(--nova-warning)}
.verification-spinner{border-color:var(--nova-border);border-top-color:var(--nova-cyan)}
@media(max-width:1100px){.content{padding:24px}.topbar{padding:0 24px}.stats{gap:16px}.stat{padding:20px}.top-actions{gap:8px}}
@media(max-width:800px){.shell{grid-template-columns:68px minmax(0,1fr)}.sidebar{width:68px;padding:24px 8px}.sidebar .brand{padding:0;align-items:center}.sidebar .nova-wordmark{display:none}.sidebar .nova-symbol{display:block}.sidebar a{padding:12px 8px}.content{padding:24px 20px}.topbar{padding:0 20px}.stats{gap:12px}.page-head h1{font-size:28px}.card-head,.card-body{padding:20px}}
@media(max-width:480px){.topbar .project-name{display:none}.topbar{justify-content:flex-end}.stats{grid-template-columns:1fr}.stat strong{font-size:32px}.dialog-foot{flex-wrap:wrap}.login-card{padding:28px}.card-head{flex-wrap:wrap}.rule-panel{padding:12px}.viewer-tools form{min-width:0}.viewer-tools input{min-width:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Customer accounts */
.login-register { border-top:1px solid var(--line); margin-top:24px; padding-top:16px; }
.login-card .stack { gap:16px; }
#access-error:not(:empty) { border:1px solid #F4978E; padding:12px; border-radius:8px; color:#FFD0CA; }
.account-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); padding:14px 0; }
.account-row small { display:block; margin-top:4px; }
.account-password { max-width:520px; }
.account-context strong { font-size:18px; }
#account-content code { overflow-wrap:anywhere; }
#account-content select { width:auto; max-width:100%; }
/* Formula field menu: spans the action width and uses existing NOVA colors. */
.formula-editor{grid-column:1/-1;min-width:0;border-top:1px solid var(--nova-line);padding-top:16px;display:grid;gap:10px}
.formula-toolbar,.formula-picker-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.formula-toolbar>strong{margin-right:auto}.formula-operators{display:flex;flex-wrap:wrap;gap:4px}.formula-operators button{min-width:36px;font-size:18px;padding:4px 10px}
.formula-preview{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-height:52px;padding:10px;border-radius:8px;background:var(--nova-canvas);border:1px solid var(--nova-line)}
.formula-math{white-space:pre-wrap;font-family:ui-monospace,monospace;overflow-wrap:anywhere}.formula-token{padding:5px 10px;min-height:34px;border-color:var(--nova-cyan);color:var(--nova-cyan);font-size:13px;max-width:100%;overflow-wrap:anywhere;text-align:left}.formula-token.unknown{border-color:var(--nova-warning);color:var(--nova-warning)}
.rule-current .formula-editor textarea{width:100%;min-height:72px;resize:vertical;font-family:ui-monospace,monospace;font-size:14px;line-height:1.6;padding:12px}.formula-editor>.hint{font-size:12px;margin:0}
.formula-picker{border:1px solid var(--nova-cyan);border-radius:8px;background:var(--nova-aubergine);padding:14px;min-width:0}.formula-picker[hidden]{display:none}.formula-picker-head{justify-content:space-between;margin-bottom:12px}.formula-filters{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.formula-filters label{display:grid;gap:6px}.formula-results{max-height:280px;overflow-y:auto;overscroll-behavior:contain}.formula-result-count{margin:10px 0;font-size:12px}
.formula-option{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px;width:100%;border:0;border-bottom:1px solid var(--nova-line);border-radius:0;padding:10px 12px;overflow-wrap:anywhere;white-space:normal}.formula-option strong{font-weight:550;color:var(--nova-chalk)}.formula-option span,.formula-option small{color:var(--nova-muted);font-size:12px}.formula-option:focus-visible,.formula-option:hover{background:var(--nova-surface)}
@media(max-width:650px){.formula-filters{grid-template-columns:1fr}.formula-toolbar>strong{width:100%}.formula-results{max-height:220px}}

/* Product data: searchable products, readable values and reusable field definitions. */
.pd-layout{display:grid;grid-template-columns:minmax(230px,290px) minmax(0,1fr);gap:24px;align-items:start;margin:24px 0}.pd-products{position:sticky;top:20px}.pd-count,.pd-pagination{padding:12px 20px}.pd-product-list{max-height:560px;overflow:auto}.pd-product{display:flex;flex-direction:column;gap:5px;width:100%;text-align:left;border:0;border-radius:0;border-top:1px solid var(--line);padding:14px 20px;background:transparent;color:inherit;white-space:normal}.pd-product.selected{background:rgba(216,235,135,.15);box-shadow:inset 3px 0 #d8eb87}.pd-product small{opacity:.7}.pd-detail{min-width:0}.pd-product-heading{display:flex;align-items:center;flex-direction:column;text-align:center;padding:12px 0 24px}.pd-image{width:min(100%,280px);height:220px;display:grid;place-items:center;border-radius:14px;background:#fff;color:#555;padding:16px;margin-bottom:20px}.pd-image img{max-width:100%;max-height:188px;object-fit:contain}.pd-product-heading h2{max-width:700px;line-height:1.35}.pd-values{table-layout:fixed;width:100%}.pd-values th{width:26%;vertical-align:top}.pd-values td{white-space:pre-wrap;overflow-wrap:anywhere;max-width:none;vertical-align:top}.pd-values code{white-space:normal;overflow-wrap:anywhere}.pd-changed{background:rgba(128,224,190,.12)}.pd-originals{margin-top:24px}.pd-originals h3{margin-top:24px}.pd-field-catalog{margin-top:24px}.pd-field-catalog .sub{white-space:normal;overflow-wrap:anywhere}.pd-field-dialog{width:min(1060px,96vw);max-width:1060px}.pd-field-dialog [hidden]{display:none!important}.pd-field-dialog .formula-preview{flex-wrap:wrap;min-height:46px}.pd-field-dialog .formula-picker{padding:18px}.pd-field-dialog textarea[name=description]{min-height:80px}.pd-field-dialog textarea[name=expression]{min-height:80px}#pd-variable-results{max-height:230px;overflow:auto}@media(max-width:1000px){.pd-layout{grid-template-columns:1fr}.pd-products{position:static}.pd-product-list{max-height:260px}.pd-values{font-size:12px}.pd-values td,.pd-values th{padding:10px 8px}}

/* Reversible product field retirement and explicit impact review. */
.pd-archives{padding:24px;border-top:1px solid var(--nova-line)}
.pd-archive-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0;border-top:1px solid var(--nova-line)}
.pd-field-review{max-width:860px}
.pd-field-review code{overflow-wrap:anywhere}
.pd-field-review li{margin:8px 0}
.pd-field-review #pd-lifecycle-form{padding:20px;border:2px solid var(--nova-warning);border-radius:12px}
.pd-field-review #pd-lifecycle-form input[name=confirm_name]{display:block;width:100%;margin-top:8px}
.pd-field-review .notice>.sub{display:block;margin-top:4px}
.pd-field-review #pd-lifecycle-form label:not(.check){display:block}

/* Product data: compare working values with the actual output formatting. */
.pd-controls{align-items:end;flex-wrap:wrap}.pd-controls>label{min-width:220px;flex:1}.pd-controls>.hint{flex-basis:100%}
.pd-values{min-width:740px}.pd-values th{width:auto}.pd-values thead th:first-child,.pd-values tbody th{width:22%}.pd-values thead th:not(:first-child){width:26%}.pd-values thead small{display:block;font-size:12px;font-weight:400;text-transform:none;letter-spacing:normal;line-height:1.5;margin-top:7px;color:var(--nova-muted)}
.pd-values .pd-output-column{border-top:3px solid var(--nova-lime,#d8eb87)}.pd-output-cell{border-left:1px solid var(--line)}.pd-output-origin{display:block;margin-top:8px;color:var(--nova-muted);white-space:normal}.pd-output-note{line-height:1.6}.pd-stage-help{margin-bottom:20px;line-height:1.7}

/* Visible export routes, separate from Input matching and Rules. */
.output-mapping-summary{border-top:1px solid var(--nova-line);padding-top:16px;margin-top:8px}.output-route{display:block;margin:8px 0;overflow-wrap:anywhere}.output-mapping-dialog{width:min(1180px,96vw);max-width:1180px}.output-mapping-table{width:100%;table-layout:fixed;min-width:640px}.output-mapping-table th:first-child{width:44%}.output-mapping-table th:nth-child(2){width:32%}.output-mapping-table td{vertical-align:top;white-space:normal;overflow-wrap:anywhere}.output-mapping-table label{display:block;font-size:12px}.output-mapping-table select{width:100%;margin-top:7px}.output-mapping-table .sub{margin-top:8px;white-space:normal}.output-map-renamed{background:var(--nova-info-bg)}.output-mapping-table tr[hidden]{display:none}.pd-output-route{margin:6px 0 16px}.pd-output-route .button,.pd-output-route button{margin-top:6px}
