/* Municipal identity: service blue and visitor orange from the municipality's
   website, adapted for an internal data application. No remote assets. */
.infobi {
  --civic-blue: #153b70;
  --civic-ink: #202d3e;
  --civic-orange: #ef8354;
  --civic-muted: #596777;
  --civic-line: #d7dee5;
  --navy: var(--civic-ink);
  --teal: var(--civic-blue);
  --muted: var(--civic-muted);
  --line: var(--civic-line);
  color: var(--civic-ink);
  background: #f5f6f7;
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 15px;
}
.infobi :is(h1,h2,h3,h4) { color: var(--civic-ink); letter-spacing: -.02em; }
.infobi h1 { font-weight: 700; }
.infobi :is(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid #b15b2c; outline-offset: 3px; }

/* A permanent, quiet directory of the five daily tasks. */
.infobi .sidebar { width: 248px; padding: 33px 19px 20px; background: #fff; border-right: 1px solid var(--civic-line); }
.infobi .workspace { margin-left: 248px; }
.infobi .brand { padding: 0 13px; color: var(--civic-blue); font-size: 31px; font-weight: 750; letter-spacing: -1.4px; }
.brand-bi { color: #b9582f; }
.infobi .brand small { color: var(--civic-muted); font-size: 11px; letter-spacing: .1px; margin-top: 3px; }
.municipal-identity { margin: 23px 13px 0; }
.municipal-identity>span:first-child { display: block; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--civic-muted); }
.municipal-identity strong { display: block; font-size: 15px; line-height: 1.65; margin-top: 7px; font-weight: 600; color: var(--civic-blue); }
.municipal-rule { display: block; height: 3px; width: 34px; background: var(--civic-orange); margin-top: 14px; }
.infobi .nav-caption { color: #657182; margin: 23px 13px 13px; font-size: 10px; letter-spacing: 1px; }
.infobi .primary-nav { gap: 4px; }
.infobi .primary-nav a { color: #415268; padding: 13px 12px; border-radius: 2px; font-size: 13px; gap: 11px; min-height: 46px; white-space: normal; }
.infobi .primary-nav a:hover { background: #f1f4f7; color: var(--civic-blue); }
.infobi .primary-nav a.active { background: #eaf0f6; color: var(--civic-blue); box-shadow: inset 3px 0 var(--civic-orange); font-weight: 650; }
.infobi .primary-nav a.active i { display: none; }
.infobi .nav-tools { color: var(--civic-muted); margin-top: 25px; }
.infobi .nav-tools summary { font-size: 12px; }
.infobi .nav-tools nav a { color: #4c5c70; font-size: 12px; }
.infobi .nav-tools nav a:hover { background: #edf2f6; color: var(--civic-blue); }
.infobi .help-trigger { color: #4f6279; font-size: 12px; }
.infobi .profile { border-color: var(--civic-line); }
.infobi .profile strong { color: var(--civic-ink); }
.infobi .profile small { color: #596777; }
.infobi .sidebar-bottom { padding-top: 16px; }
.infobi .profile { padding-top: 12px; margin-top: 7px; }
.infobi .avatar { background: #edf1f5; color: var(--civic-blue); border-radius: 3px; }
.infobi .topbar { background: var(--civic-blue); border: 0; min-height: 74px; height: 74px; padding: 0 40px; }
.infobi .city-context { color: white; font-size: 13px; font-weight: 500; }
.infobi .citizen-link { color: white; font-size: 12px; border-bottom: 1px solid #8da6c8; padding-bottom: 3px; }
.infobi .local-label { color: #e0e8f2; font-size: 11px; }
.infobi .local-label i { background: var(--civic-orange); }
.infobi .mobile-menu { color: white; }
.infobi main { padding: 27px 40px 42px; max-width: 1600px; }
.infobi .wayfinding { font-size: 11px; color: #596777; margin-bottom: 24px; }
.infobi footer { color: #637080; border-top: 1px solid var(--civic-line); margin: 0 40px; padding: 20px 0; font-size: 11px; }

/* Data first: clear rules, readable labels, restrained surface treatment. */
.infobi .meeting-heading { margin-top: 0; margin-bottom: 27px; }
.infobi .meeting-heading h1 { font-size: clamp(28px,2.8vw,38px); font-weight: 700; color: var(--civic-blue); letter-spacing: -1px; }
.infobi .meeting-heading p { font-size: 14px; color: #536274; }
.infobi :is(.meeting-eyebrow,.simple-overline) { color: #51647a; font-size: 10px; letter-spacing: 1.1px; font-weight: 700; }
.infobi .meeting-demo-badge { color: #735239; background: #faf0e7; border: 0; border-radius: 2px; padding: 7px 10px; font-size: 11px; }
.infobi .meeting-filters { padding-bottom: 20px; border-bottom: 1px solid var(--civic-line); margin-bottom: 26px; }
.infobi :is(.meeting-filters label,.meeting-settings label) { color: #415268; }
.infobi :is(.meeting-filters select,.meeting-settings select,.meeting-settings input,.meeting-settings textarea,.meeting-search input) { color: var(--civic-ink); border-color: #c8d2dd; border-radius: 3px; }
.infobi .meeting-period { color: #596777; }
.infobi .revenue-instrument { border-radius: 3px; border-color: #cdd7e0; border-top: 3px solid var(--civic-blue); box-shadow: none; }
.infobi .instrument-face { background: #fff; border-color: var(--civic-line); }
.infobi .instrument-summary { background: #edf2f7; }
.infobi .instrument-face h2 { color: var(--civic-ink); font-size: 19px; }
.infobi :is(.instrument-kicker,.instrument-legend,.instrument-note) { color: #546579; }
.infobi .instrument-note { font-size: 12px; }
.infobi .gauge-track { stroke: #e2e7ed; }
.infobi .gauge-positive { stroke: #90afc4; }
.infobi .gauge-fill { stroke: var(--civic-orange); opacity: 1; }
.infobi .gauge-tick { stroke: #8798aa; }
.infobi .gauge-zero { stroke: var(--civic-blue); }
.infobi :is(.gauge-needle,.gauge-hub,.gauge-reading) { fill: var(--civic-blue); }
.infobi :is(.gauge-label,.gauge-unit) { fill: #51647a; }
.infobi .execution-number { color: var(--civic-blue); font-weight: 650; }
.infobi :is(.execution-number span,.execution-caption,.revenue-amounts dt) { color: #51647a; }
.infobi .revenue-amounts dd { color: var(--civic-ink); }
.infobi .revenue-difference { border-color: #c9d5e0; }
.infobi .meeting-section-heading h2 { color: var(--civic-ink); font-size: 24px; }
.infobi .meeting-section-heading p { color: #596777; font-size: 13px; }
.infobi :is(.meeting-text-link,.meeting-back,.simple-back,.simple-detail-link) { color: var(--civic-blue); font-size: 12px; }
.infobi .meeting-group-buttons button { color: #465a71; border-radius: 2px; font-size: 13px; }
.infobi .meeting-group-buttons button[aria-pressed=true] { background: var(--civic-blue); color: white; }
.infobi .meeting-group>h3 { color: var(--civic-blue); font-size: 12px; border-bottom: 1px solid #cbd5df; padding-bottom: 12px; letter-spacing: .6px; }
.infobi .meeting-cards { gap: 0; background: #fff; border: 1px solid var(--civic-line); }
.infobi .meeting-card { border: 0; border-right: 1px solid var(--civic-line); border-bottom: 1px solid var(--civic-line); border-radius: 0; padding: 24px; box-shadow: none; position: relative; }
.infobi .meeting-card:hover { background: #f8fafc; box-shadow: inset 0 3px var(--civic-orange); }
.infobi .meeting-card h4 { color: #223c5c; font-size: 16px; font-weight: 600; }
.infobi :is(.meeting-card-top,.meeting-index,.meeting-card-bottom div>span,.meeting-card-caption) { color: #596b7c; font-size: 11px; }
.infobi .meeting-index { color: #b45c32; font-weight: 700; }
.infobi .meeting-card-bottom strong { font-size: 31px; color: var(--civic-blue); font-weight: 650; }
.infobi .meeting-card-bottom strong small { color: #60738b; }
.infobi .meeting-card-arrow { color: var(--civic-blue); font-size: 20px; }
.infobi .meeting-pending { color: #83512a; border-color: #e5d9cc; }
.infobi .meeting-iso { background: #fff; border-radius: 3px; border-color: var(--civic-line); border-left: 4px solid var(--civic-orange); }
.infobi :is(.iso-number,.meeting-iso h2) { color: var(--civic-blue); }
.infobi :is(.meeting-iso p,.iso-number small,.iso-steps,.meeting-footnote) { color: #596777; }
.infobi .meeting-footnote a { color: var(--civic-blue); }

/* The same language on catalogues, boards, sources and working forms. */
.infobi :is(.simple-indicator-list,.simple-iso-card,.simple-board-card,.simple-import-panel,.creation-panel,.bi-block,.report-list,.meeting-metric-summary,.meeting-data-panel,.meeting-settings,dialog) { border-radius: 3px; border-color: var(--civic-line); box-shadow: none; }
.infobi :is(.simple-tabs a,.simple-note a,.simple-secondary a,.simple-update-help a,.simple-import-links a,.simple-board-card>a,.simple-source-datasets a,.simple-source-links a) { color: var(--civic-blue); }
.infobi .simple-tabs { border-color: var(--civic-line); padding-bottom: 0; gap: 24px; }
.infobi .simple-tabs a { border-radius: 0; padding: 14px 0; border-bottom: 3px solid transparent; background: transparent; }
.infobi .simple-tabs a[aria-current=page] { background: transparent; color: var(--civic-blue); border-color: var(--civic-orange); font-weight: 700; }
.infobi .simple-tabs a:hover { color: #a34c28; background: transparent; }
.infobi :is(.simple-note,.simple-indicator-name p,.simple-toolbar,.simple-secondary,.simple-board-card p,.simple-run small,.simple-source-datasets>div) { color: #596777; }
.infobi :is(.simple-indicator-name h2,.simple-intro h2,.simple-iso-card h2,.simple-board-card h2,.simple-import-panel h2,.simple-update-help h2,.simple-choice-fieldset legend) { color: #223c5c; }
.infobi :is(.simple-intro,.simple-update-help) { background: #eaf0f6; border-radius: 3px; border-left: 3px solid var(--civic-blue); }
.infobi :is(.simple-intro p,.simple-update-help) { color: #4e6178; }
.infobi .simple-state { border-radius: 2px; background: #f7eee3; color: #78562f; }
.infobi .simple-state.is-on { background: #edf2ec; color: #3f633d; }
.infobi .simple-toggle.is-on { background: var(--civic-blue); }
.infobi .simple-choice { color: #344b65; border-radius: 3px; border-color: #d2dbe5; }
.infobi .simple-choice:has(input:checked) { border-color: #708dad; background: #edf2f8; }
.infobi .simple-choice input { accent-color: var(--civic-blue); }
.infobi .simple-board-card { border-top: 3px solid var(--civic-blue); }
.infobi .simple-board-card>strong { color: var(--civic-blue); font-weight: 650; }
.infobi .simple-board-card small { color: #596777; }
.infobi :is(.simple-board-name label,.simple-import-panel label,.simple-secondary label,.simple-run strong) { color: #3d536d; }
.infobi :is(.simple-toolbar input,.simple-board-name input,.simple-import-panel input:not([type=checkbox]),.simple-import-panel select,.simple-secondary textarea) { color: var(--civic-ink); border-color: #c8d2dd; border-radius: 3px; }
.infobi :is(.button,button.button) { background: var(--civic-blue); border: 1px solid var(--civic-blue); color: #fff; border-radius: 3px; box-shadow: none; font-weight: 600; }
.infobi :is(.button.secondary,.button.outline) { background: #fff; border-color: #b9c9db; color: var(--civic-blue); }
.infobi .button:hover { background: #0c2b56; color: white; }
.infobi .creation-panel>summary { color: var(--civic-blue); }
.infobi .feedback { background: #eaf1ec; color: #355640; border-left: 3px solid #6b9075; border-radius: 2px; }
.infobi .feedback.error { background: #fff1ed; color: #943d2d; border-color: #b3523d; }
.infobi :is(.meeting-primary-value,.meeting-metric-summary h2,.meeting-data-panel h2,.meeting-contract-ratios strong,.meeting-trend strong,.meeting-settings summary) { color: var(--civic-blue); }
.infobi :is(.meeting-primary-value span,.meeting-metric-summary p:not(.meeting-primary-value),.meeting-settings summary small,.meeting-settings-body p,.meeting-contract-ratios span,.meeting-trend) { color: #596777; }
.infobi .meeting-trend-track { background: #e3eaf1; }
.infobi .meeting-trend-track i { background: #486f9a; }
.infobi .meeting-table thead th,.infobi .meeting-table tfoot { background: #edf2f7; color: #3c5674; }
.infobi .meeting-table tbody th,.infobi .meeting-table td { color: #304962; }
.infobi .help-choice strong { color: var(--civic-blue); }

@media(max-width:1150px) {
  .infobi .sidebar { width: 220px; padding-left: 12px; padding-right: 12px; }
  .infobi .workspace { margin-left: 220px; }
  .infobi main { padding: 26px 28px 36px; }
  .infobi .topbar { padding: 0 28px; }
  .infobi footer { margin: 0 28px; }
  .municipal-identity strong { font-size: 14px; }
}
@media(max-width:700px) {
  .infobi .sidebar { width: 248px; inset: 64px auto 0 0; padding: 24px 16px; }
  .infobi .workspace { margin-left: 0; }
  .infobi .topbar { height: 64px; min-height: 64px; padding: 0 15px; gap: 10px; }
  .infobi .city-context { font-size: 11px; line-height: 1.5; }
  .infobi .topbar-actions { margin-left: auto; }
  .infobi .citizen-link { font-size: 10px; }
  .infobi .local-label { display: none; }
  .infobi main { padding: 22px 18px 30px; }
  .infobi footer { margin: 0 18px; font-size: 10px; }
  .municipal-identity { margin-top: 20px; }
  .infobi .nav-caption { margin-top: 22px; }
  .infobi .meeting-heading h1 { font-size: 29px; }
  .infobi .meeting-card { padding: 22px; border-right: 0; }
  .infobi .instrument-summary { padding: 26px; }
  .infobi .simple-tabs { gap: 18px; }
  .infobi .simple-tabs a { flex: none; justify-content: flex-start; font-size: 12px; }
  .infobi .simple-tabs a>span { display: inline; }
}
@media(prefers-reduced-motion:reduce) { .infobi .meeting-card { transition: none; } }

/* Local sign-in belongs to the same service. */
.login-page { background: #153b70; }
.login-page .login-panel { border-radius: 3px; border-top: 5px solid #ef8354; }
.login-page .login-panel h1,.login-page .eyebrow { color: #153b70; }
.login-page .button { background: #153b70; color: white; border-radius: 3px; }
