.ns-page { color:#222; font-family:Arial,Helvetica,sans-serif; font-size:13px; }
.ns-page * { box-sizing:border-box; }
.ns-page [hidden] { display:none!important; }
.ns-header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.ns-header h2 { font-size:22px; font-weight:700; margin:0; letter-spacing:0; }
.ns-header p { color:#666; font-size:12px; margin:4px 0 0; }
.ns-page h3 { font-size:14px; font-weight:700; margin:0; }
.ns-control { display:flex; align-items:center; gap:8px; font-size:12px; color:#444; }
.ns-page select, .ns-page input { background:white; color:#222; border:1px solid #b9bec5; border-radius:3px; padding:6px 8px; font:12px Arial,Helvetica,sans-serif; min-height:32px; }
.ns-page button, .ns-page summary, .ns-page select { cursor:pointer; }
.ns-page button:focus-visible, .ns-page select:focus-visible, .ns-page input:focus-visible, .ns-page summary:focus-visible { outline:2px solid #337ab7; outline-offset:2px; }
.ns-overview-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.ns-period-controls { display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:12px; }
.ns-period-controls input { min-width:0; }
.ns-button { border:1px solid #286090; border-radius:3px; background:#337ab7; color:white; font-size:12px; padding:6px 13px; min-height:32px; }
.ns-button:hover { background:#286090; }
.ns-period-label { font-size:11px; color:#666; margin:7px 0 10px; }
.ns-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.ns-card { background:white; border:1px solid #d1d5db; border-radius:4px; min-width:0; }
.ns-card-main { padding:10px 12px 9px; }
.ns-card-label { font-size:11px; color:#555; margin-bottom:4px; }
.ns-card-value { font-size:23px; font-weight:600; line-height:1.25; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ns-card-value small { font-size:11px; font-weight:400; color:#666; margin-left:4px; }
.ns-card-rates { display:flex; justify-content:space-between; gap:6px; padding:7px 12px; border-top:1px solid #e1e4e8; }
.ns-card-rates strong { font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.ns-card-rates span { display:block; font-size:10px; color:#777; margin-top:2px; }
.ns-card-rates > div:last-child { text-align:right; }
.ns-card-estimate { padding:7px 12px; border-top:1px solid #e1e4e8; font-size:10px; color:#777; }
.ns-positive { color:#317544; } .ns-negative { color:#a94442; }
.ns-tabs { display:flex; border-bottom:1px solid #b9bec5; margin:4px 0 14px; gap:2px; }
.ns-tabs button { border:1px solid transparent; border-bottom:0; padding:9px 15px; font-size:12px; color:#337ab7; margin-bottom:-1px; border-radius:4px 4px 0 0; }
.ns-tabs button[aria-selected="true"] { color:#222; border-color:#b9bec5; background:white; font-weight:600; }
.ns-tabs button:hover { background:#eee; }
.ns-trend-controls, .ns-trend-filters, .ns-trend-actions { display:flex; align-items:center; gap:12px; }
.ns-trend-controls { justify-content:space-between; margin-bottom:10px; }
#nsPrimaryState { max-width:280px; }
.ns-switch { display:flex; white-space:nowrap; }
.ns-switch button { background:white; border:1px solid #b9bec5; color:#555; font-size:12px; padding:7px 10px; }
.ns-switch button:first-child { border-radius:3px 0 0 3px; }
.ns-switch button:last-child { border-radius:0 3px 3px 0; border-left:0; }
.ns-switch button[aria-pressed="true"] { background:#e8edf2; color:#222; font-weight:600; }
.ns-download { position:relative; }
.ns-download > summary { list-style:none; background:white; border:1px solid #b9bec5; color:#333; border-radius:3px; padding:7px 10px; font-size:12px; white-space:nowrap; }
.ns-download > summary::-webkit-details-marker { display:none; }
.ns-download > summary span { margin-left:9px; }
.ns-download-options { position:absolute; right:0; top:36px; min-width:210px; padding:4px 0; background:white; border:1px solid #c6cbd2; border-radius:3px; box-shadow:0 3px 8px #0002; z-index:20; }
.ns-download-options button { display:block; width:100%; text-align:left; padding:9px 12px; color:#333; font-size:12px; }
.ns-download-options button:hover { background:#eee; }
.ns-download-options button:disabled { opacity:.45; cursor:wait; }
.ns-chart-panel { border:1px solid #d1d5db; background:white; border-radius:4px; min-width:0; padding:14px 16px 9px; }
.ns-chart-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.ns-chart-heading p { font-size:12px; color:#666; margin:3px 0 0; }
.ns-chart-heading select { max-width:220px; }
.ns-graph-totals { color:#555; font-size:11px; margin:8px 0; }
.ns-legend { display:flex; flex-wrap:wrap; gap:12px; font-size:11px; color:#555; min-height:19px; margin-top:7px; }
.ns-legend-item { display:inline-flex; align-items:center; gap:5px; }
.ns-legend-dot { width:8px; height:8px; flex-shrink:0; }
.ns-legend-item button { color:#777; padding:0 3px; font-size:14px; }
.ns-chart { width:100%; min-height:280px; }
.ns-chart svg { width:100%; display:block; overflow:visible; }
.ns-chart-note { font-size:11px; color:#777; line-height:1.6; min-height:18px; margin:3px 0 0; }
.ns-data { margin-top:10px; border:1px solid #d1d5db; border-radius:4px; background:white; }
.ns-data > summary { font-size:12px; font-weight:600; padding:10px 12px; }
.ns-data > summary span { font-weight:400; color:#777; margin-left:10px; font-size:11px; }
.ns-table-wrap { overflow-x:auto; }
.ns-page table { width:100%; border-collapse:collapse; white-space:nowrap; font-size:12px; text-align:left; }
.ns-page th { color:#444; background:#f2f2f2; font-size:11px; font-weight:600; text-align:left; padding:10px 12px; border-bottom:1px solid #bbb; }
.ns-page td { padding:9px 12px; border-bottom:1px solid #e3e3e3; }
.ns-page tbody tr:nth-child(even) { background:#fafafa; }
.ns-page tbody tr:hover { background:#f1f5f9; }
.ns-state-link { color:#337ab7; text-align:left; }
.ns-state-link:hover { text-decoration:underline; }
.ns-table-heading { display:flex; align-items:center; justify-content:space-between; margin:4px 0 10px; }
.ns-table-heading span { color:#666; font-size:12px; }
.ns-period-table { border:1px solid #d1d5db; border-radius:3px; background:white; max-height:460px; }
.ns-period-table thead th { position:sticky; top:0; z-index:1; }
.ns-data p { color:#777; font-size:11px; padding:9px 12px; }
.ns-message { background:#fcf8e3; border:1px solid #faebcc; border-radius:3px; padding:9px 12px; color:#8a6d3b; font-size:12px; margin-bottom:10px; }
@media(max-width:1100px) { .ns-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) {
    .ns-header { margin-bottom:14px; } .ns-header h2 { font-size:20px; }
    .ns-header > .ns-control { flex-direction:column; align-items:flex-start; gap:3px; }
    .ns-header > .ns-control span { font-size:10px; }
    .ns-overview-heading { align-items:flex-start; flex-direction:column; gap:8px; }
    .ns-period-controls { gap:5px; width:100%; }
    .ns-period-controls label { display:none; }
    .ns-period-controls input { flex:1; width:0; padding:5px; font-size:11px; }
    .ns-period-label { line-height:1.5; }
    .ns-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .ns-card-main { padding:9px 10px; } .ns-card-value { font-size:22px; }
    .ns-card-rates { padding:7px 10px; }
    .ns-tabs button { padding:8px 12px; }
    .ns-trend-controls { align-items:stretch; flex-direction:column; gap:8px; }
    .ns-trend-filters { gap:10px; } .ns-trend-filters .ns-control { gap:5px; }
    #nsPrimaryState { width:100%; min-width:0; max-width:none; }
    .ns-trend-filters .ns-control:last-child { flex:1; min-width:0; }
    .ns-trend-actions { justify-content:space-between; gap:5px; }
    .ns-switch button { font-size:11px; padding:7px 8px; }
    .ns-download > summary { font-size:11px; }
    .ns-chart-panel { padding:12px 9px 8px; }
    .ns-chart-heading select { max-width:155px; font-size:11px; }
    .ns-chart { min-height:260px; }
    .ns-data > summary span { display:none; }
}
/* Small calculation explanations, available by mouse, keyboard or touch. */
.ns-info { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; margin-left:2px; vertical-align:middle; color:#666; background:transparent; font-weight:400; }
.ns-info > span { display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; border:1px solid #999; border-radius:50%; font:italic 11px Georgia,serif; }
.ns-info:hover > span { color:#286090; border-color:#286090; }
.ns-help-dialog { width:410px; max-width:calc(100vw - 32px); padding:0; margin:auto; border:1px solid #aaa; border-radius:4px; background:white; color:#222; font:13px Arial,Helvetica,sans-serif; box-shadow:0 4px 20px #0003; }
.ns-help-dialog::backdrop { background:#0004; }
.ns-help-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; border-bottom:1px solid #ddd; background:#f5f5f5; }
.ns-help-heading > button { width:28px; height:28px; padding:0; color:#666; font-size:21px; font-weight:400; }
.ns-help-body { padding:14px 16px; line-height:1.6; }
.ns-help-body p { margin:0 0 10px; }
.ns-help-body p:last-child { margin-bottom:0; }
.ns-help-formula { padding:9px 10px; background:#f4f6f8; border-left:2px solid #999; font-size:12px; white-space:normal; }
.ns-help-context { color:#666; font-size:11px; }
.ns-monthly-intro { margin:0; padding:0 12px 10px!important; line-height:1.5; }
.ns-page .ns-current-month { background:#f2f7fc; }
.ns-monthly-status { display:flex; align-items:center; gap:5px; }
.ns-monthly-status > div > small { display:block; color:#777; font-size:10px; margin-top:2px; }
.ns-current-label { color:#666; font-weight:400; font-size:11px; margin-left:4px; }
.ns-cell-muted { color:#777; font-size:11px; }
.ns-page .ns-monthly-number { font-variant-numeric:tabular-nums; }
