:host,.nfo-app{--n-ink:#030912;--n-panel:#08111e;--n-raised:#0d1828;--n-line:rgba(188,211,232,.14);--n-strong:rgba(188,211,232,.28);--n-text:#edf5fb;--n-muted:#92a6b8;--n-cyan:#b99aff;--n-violet:#c5a5ff;--n-green:#91dfb1;--n-amber:#f2c46f;--n-red:#ff8e95;display:block;color:var(--n-text);font:15px/1.45 var(--font-sans,"Instrument Sans",Inter,system-ui,sans-serif)}
.nfo-app{min-height:100%;background:radial-gradient(circle at 78% 0,rgba(77,116,165,.12),transparent 28rem),var(--n-ink);padding:24px clamp(20px,4vw,64px) 34px}.nfo-top,.nfo-embed-bar,.nfo-guard,.nfo-tabs,.nfo-hero,.nfo-metrics,.nfo-panel,.nfo-proof,.nfo-footer,.nfo-alert,.nfo-connection-state{max-width:1440px;margin-left:auto;margin-right:auto}.nfo-top,.nfo-embed-bar{display:flex;justify-content:space-between;gap:24px;margin-bottom:16px}.nfo-embed-bar{align-items:center;padding-bottom:14px;border-bottom:1px solid var(--n-line)}.nfo-embed-bar strong{font-size:14px;font-weight:600}.nfo-top{margin-bottom:24px}.nfo-kicker{margin:0 0 7px;color:var(--n-muted);font-size:10px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.nfo-top h1,.nfo-hero h2,.nfo-modal h2{margin:0;font-family:inherit;font-size:clamp(25px,3vw,36px);font-weight:600;line-height:1.15;letter-spacing:-.03em}.nfo-subtitle,.nfo-hero p,.nfo-modal>p{color:var(--n-muted);margin:9px 0 0}.nfo-top-actions{display:flex;align-items:center;gap:12px}.nfo-state,.nfo-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--n-strong);border-radius:999px;color:var(--n-muted);font-size:11px;letter-spacing:.04em;padding:6px 10px;white-space:nowrap}.nfo-state i{width:6px;height:6px;border-radius:50%;background:var(--n-cyan);box-shadow:0 0 0 4px rgba(114,220,233,.11)}.nfo-icon-button,.nfo-modal-close{border:1px solid var(--n-line);background:transparent;color:var(--n-text);border-radius:8px;width:37px;height:37px;cursor:pointer}.nfo-icon-button:hover,.nfo-modal-close:hover{border-color:var(--n-cyan);color:var(--n-cyan)}
.nfo-connection-state{margin-bottom:16px;color:var(--n-muted);font-size:11px}.nfo-connection-state summary{cursor:pointer;color:var(--n-muted);list-style:none}.nfo-connection-state summary::-webkit-details-marker{display:none}.nfo-connection-state summary:before{content:'+';display:inline-grid;place-items:center;width:17px;height:17px;margin-right:6px;border:1px solid var(--n-strong);border-radius:50%;color:var(--n-cyan)}.nfo-connection-state[open] summary:before{content:'−'}.nfo-connection-state span{display:block;margin:7px 0 0 24px;color:var(--n-muted)}.nfo-guard{margin-bottom:25px;padding:13px 16px;display:flex;align-items:center;gap:10px;background:rgba(242,196,111,.07);border:1px solid rgba(242,196,111,.24);color:#e5d7b9;font-size:13px}.nfo-guard>span:first-child{color:var(--n-amber);font-weight:800}.nfo-guard>span:last-child{color:var(--n-muted)}.nfo-tabs{display:flex;gap:5px;border-bottom:1px solid var(--n-line);margin-bottom:22px}.nfo-tabs button{position:relative;border:0;background:none;color:var(--n-muted);padding:12px 17px 13px;cursor:pointer;font:inherit}.nfo-tabs button:hover,.nfo-tabs button.active{color:var(--n-text)}.nfo-tabs button.active:after{position:absolute;content:"";height:2px;bottom:-1px;left:16px;right:16px;background:var(--n-cyan)}.nfo-tabs button:first-child{color:var(--n-violet)}.nfo-tabs button:first-child.active:after{background:var(--n-violet)}
.nfo-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:25px;margin-bottom:22px}.nfo-hero.compact{align-items:flex-start}.nfo-hero h2{font-size:clamp(25px,3vw,36px)}.nfo-hero p{max-width:670px}.nfo-hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nfo-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--n-strong);border-radius:7px;background:transparent;color:var(--n-text);padding:10px 14px;text-decoration:none;font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer}.nfo-button:hover{border-color:var(--n-cyan);color:var(--n-cyan)}.nfo-button.primary{background:var(--n-cyan);border-color:var(--n-cyan);color:#061119}.nfo-button.primary:hover{background:#a4eff5;color:#061119}.nfo-button.secondary{background:var(--n-raised)}.nfo-button.small{padding:8px 10px;font-size:12px}.nfo-back{padding:0;border:0;background:none;color:var(--n-cyan);cursor:pointer;font:600 13px inherit;margin-bottom:22px}
.nfo-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--n-line);border:1px solid var(--n-line);margin-bottom:22px}.nfo-metrics>div{background:var(--n-panel);padding:19px 21px}.nfo-metrics span,.nfo-metrics small{display:block;color:var(--n-muted);font-size:12px}.nfo-metrics strong{display:block;margin:5px 0 1px;font:400 29px/1 "Young Serif",Georgia,serif}.nfo-panel{background:rgba(8,17,30,.92);border:1px solid var(--n-line);padding:21px;margin-bottom:18px}.nfo-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px}.nfo-panel-head h3,.nfo-lines-head h3{margin:0;font:400 23px/1.1 "Young Serif",Georgia,serif}.nfo-filters{display:flex;gap:8px;align-items:center}.nfo-search{display:flex;align-items:center;gap:8px;border:1px solid var(--n-line);background:var(--n-ink);color:var(--n-muted);padding:8px 10px;border-radius:6px;min-width:min(270px,45vw)}.nfo-search input,.nfo-filters select,.nfo-form input,.nfo-form select,.nfo-modal select{width:100%;border:0;outline:0;background:transparent;color:var(--n-text);font:inherit}.nfo-filters select{border:1px solid var(--n-line);border-radius:6px;background:var(--n-ink);padding:8px 10px;min-width:135px}.nfo-filters option,.nfo-form option,.nfo-modal option{background:var(--n-panel)}
.nfo-list{border-top:1px solid var(--n-line)}.nfo-row{display:flex;align-items:center;gap:13px;min-height:70px;border-bottom:1px solid var(--n-line);padding:10px 4px;cursor:pointer}.nfo-row:hover{background:rgba(114,220,233,.04)}.nfo-icon{display:grid;place-items:center;width:35px;height:35px;border:1px solid currentColor;border-radius:9px;flex:0 0 auto}.nfo-icon.violet{color:var(--n-violet)}.nfo-icon.cyan{color:var(--n-cyan)}.nfo-icon.green{color:var(--n-green)}.nfo-icon.amber{color:var(--n-amber)}.nfo-row-main{min-width:0;flex:1}.nfo-row-main strong,.nfo-row-main small,.nfo-row-value b,.nfo-row-value small{display:block}.nfo-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nfo-row-main small,.nfo-row-value small{color:var(--n-muted);font-size:12px;margin-top:3px}.nfo-row-value{text-align:right;min-width:150px}.nfo-row-value b{font-size:14px}.nfo-row-value b.negative{color:var(--n-red)}.nfo-row-value b.positive{color:var(--n-green)}.nfo-chevron{color:var(--n-muted);padding:0 7px}.nfo-empty,.nfo-loading{text-align:center;padding:54px 20px;color:var(--n-muted)}.nfo-empty h3{margin:11px 0 3px;color:var(--n-text);font:400 22px "Young Serif",Georgia,serif}.nfo-empty p{margin:0 auto 18px;max-width:420px}.nfo-empty-mark{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid var(--n-strong);color:var(--n-violet);border-radius:50%;font-size:20px}.nfo-loading{display:flex;justify-content:center;align-items:center;gap:11px}.nfo-loading span{width:13px;height:13px;border:2px solid var(--n-strong);border-top-color:var(--n-cyan);border-radius:50%;animation:nfo-spin .8s linear infinite}@keyframes nfo-spin{to{transform:rotate(360deg)}}
.nfo-alert{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:11px 14px;border:1px solid var(--n-line);background:var(--n-panel);font-size:13px}.nfo-alert.error{border-color:rgba(255,142,149,.35);color:var(--n-red)}.nfo-alert.success{border-color:rgba(145,223,177,.35);color:var(--n-green)}.nfo-alert button{background:none;border:0;color:inherit;font-size:18px;cursor:pointer}.nfo-form-grid{display:grid;grid-template-columns:1fr 1.4fr .55fr 1fr;gap:13px;margin-bottom:28px}.nfo-form label,.nfo-modal label{display:block;color:var(--n-muted);font-size:12px;font-weight:650}.nfo-form input,.nfo-form select,.nfo-modal input,.nfo-modal select{display:block;margin-top:7px;border:1px solid var(--n-line);border-radius:6px;background:var(--n-ink);padding:10px 11px;color:var(--n-text)}.nfo-form input:focus,.nfo-form select:focus,.nfo-modal input:focus,.nfo-modal select:focus,.nfo-search:focus-within{border-color:var(--n-cyan)}.nfo-form small{display:block;margin-top:5px;color:var(--n-muted);font-weight:400;font-size:11px}.nfo-lines-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:11px}.nfo-lines{border-top:1px solid var(--n-line)}.nfo-line{display:grid;grid-template-columns:27px 1.8fr .55fr .8fr .55fr 28px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--n-line)}.nfo-line input{margin:0}.nfo-line-number{color:var(--n-muted);text-align:center;font-size:12px}.nfo-remove{border:0;background:none;color:var(--n-muted);cursor:pointer;font-size:18px}.nfo-remove:hover{color:var(--n-red)}.nfo-form-note,.nfo-footer{color:var(--n-muted);font-size:12px}.nfo-form-note{margin-top:14px}.nfo-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}
.nfo-detail-grid{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);gap:18px}.nfo-detail-grid .nfo-panel{margin:0;max-width:none}.nfo-table{border-top:1px solid var(--n-line)}.nfo-table-row{display:grid;grid-template-columns:minmax(0,2fr) .45fr .8fr .6fr .85fr;gap:10px;border-bottom:1px solid var(--n-line);padding:11px 4px;font-size:13px}.nfo-table-row.header{color:var(--n-muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.nfo-table-row span:not(:first-child),.nfo-table-row strong{text-align:right}.nfo-totals{display:flex;justify-content:flex-end;gap:22px;margin-top:18px;color:var(--n-muted);font-size:12px}.nfo-totals b{display:block;color:var(--n-text);font-size:15px;margin-top:3px}.nfo-history-row{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--n-line)}.nfo-history-dot{margin-top:4px;width:9px;height:9px;border-radius:50%;flex:0 0 auto}.nfo-history-dot.cyan{background:var(--n-cyan)}.nfo-history-dot.violet{background:var(--n-violet)}.nfo-history-row strong,.nfo-history-row small{display:block}.nfo-history-row small{color:var(--n-muted);font-size:12px;margin-top:3px}.nfo-proof{display:flex;align-items:flex-start;gap:12px;padding:16px 0;margin-top:18px;border-top:1px solid var(--n-line);border-bottom:1px solid var(--n-line)}.nfo-proof p{color:var(--n-muted);margin:3px 0 0;font-size:13px}.nfo-footer{padding-top:23px}.nfo-file-button{position:relative;overflow:hidden}.nfo-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.nfo-modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:rgba(1,5,10,.78);z-index:20}.nfo-modal{position:relative;width:min(520px,100%);border:1px solid var(--n-strong);background:var(--n-raised);box-shadow:0 24px 90px rgba(0,0,0,.45);padding:28px}.nfo-modal h2{font-size:32px}.nfo-modal>p{margin-bottom:24px}.nfo-modal-close{position:absolute;right:18px;top:18px;font-size:22px}
@media(max-width:800px){.nfo-app{padding:20px 15px 28px}.nfo-top,.nfo-embed-bar{display:block}.nfo-top-actions{justify-content:space-between;margin-top:18px}.nfo-embed-bar .nfo-top-actions{margin-top:11px}.nfo-hero{display:block}.nfo-hero-actions{justify-content:flex-start;margin-top:16px}.nfo-metrics{grid-template-columns:1fr}.nfo-panel-head{display:block}.nfo-filters{margin-top:15px;display:grid;grid-template-columns:1fr 1fr}.nfo-search{min-width:0}.nfo-form-grid{grid-template-columns:1fr 1fr}.nfo-detail-grid{display:block}.nfo-detail-grid .nfo-panel{margin-bottom:18px}.nfo-line{grid-template-columns:20px 1fr 1fr 28px}.nfo-line input:nth-of-type(1){grid-column:2/4}.nfo-line input:nth-of-type(2),.nfo-line input:nth-of-type(3),.nfo-line input:nth-of-type(4){grid-row:2}.nfo-line input:nth-of-type(2){grid-column:2}.nfo-line input:nth-of-type(3){grid-column:3}.nfo-line input:nth-of-type(4){grid-column:4}.nfo-line .nfo-remove{grid-column:4;grid-row:1}.nfo-table-row{grid-template-columns:minmax(0,1.8fr) .55fr .8fr}.nfo-table-row span:nth-child(3),.nfo-table-row span:nth-child(4){display:none}.nfo-totals{justify-content:space-between;gap:8px}.nfo-row-value{min-width:100px}.nfo-row>.nfo-button{padding:7px 8px}.nfo-guard{display:block}.nfo-guard>span{display:block}.nfo-guard>span:first-child{display:inline-block;margin-right:7px}}
@media(max-width:460px){.nfo-form-grid{grid-template-columns:1fr}.nfo-filters{grid-template-columns:1fr}.nfo-tabs button{padding-left:8px;padding-right:8px}.nfo-tabs button.active:after{left:8px;right:8px}.nfo-row{gap:8px}.nfo-row-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nfo-row-value{min-width:80px}.nfo-row-value small{display:none}.nfo-row>.nfo-button{font-size:0;width:34px}.nfo-row>.nfo-button:after{content:"→";font-size:15px}.nfo-table-row{font-size:12px}.nfo-totals{font-size:11px}.nfo-totals b{font-size:13px}}
@media(prefers-reduced-motion:reduce){.nfo-app *,.nfo-app *:before,.nfo-app *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Native dashboard mount owns its tokens without requiring Shadow DOM. */
#finance-app .nfo-app{padding:16px 0 28px;background:transparent}
#finance-app .nfo-panel h3{font-family:inherit;font-weight:600;font-size:20px}
#finance-app .nfo-app button:focus-visible,#finance-app .nfo-app a:focus-visible,#finance-app .nfo-row:focus-visible{outline:2px solid var(--n-violet);outline-offset:3px}
@media(max-width:800px){#finance-app .nfo-line input:nth-of-type(4){grid-column:2/4;grid-row:3}}

/* Release-specific interaction guards. */
.nfo-app button:focus-visible,.nfo-app a:focus-visible,.nfo-app input:focus-visible,.nfo-app select:focus-visible{outline:2px solid var(--n-violet);outline-offset:3px}
.nfo-modal{max-height:calc(100vh - 40px);overflow:auto}
