:root {
  color-scheme: light;
  --ink: #1c1c1e;
  --muted: #737377;
  --line: #e8e8ea;
  --soft: #f6f6f7;
  --sidebar: #f3f3f4;
  --paper: #ffffff;
  --shadow: 0 16px 40px rgba(0, 0, 0, .07);
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Aptos, "Segoe UI", sans-serif; font-size: 15px; }
.session-loading { display: none; min-height: 100vh; align-items: center; justify-content: center; padding: 24px; color: var(--muted); background: var(--paper); }
.session-loading p { margin: 0; font-size: 15px; }
body.session-pending .app-shell { display: none; }
body.session-pending .session-loading { display: flex; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 258px minmax(0, 1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 258px; height: 100vh; padding: 18px 12px; display: flex; flex-direction: column; overflow: hidden; background: var(--sidebar); border-right: 1px solid var(--line); }
.wordmark { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); text-decoration: none; font-family: Bahnschrift, "Arial Narrow", sans-serif; font-size: 18px; font-weight: 720; letter-spacing: -.03em; padding: 0 8px 20px; }
.wordmark-brand { display: inline-flex; align-items: center; gap: 0; }.wordmark-icon { display: block; width: 25px; height: 25px; object-fit: contain; }
.new-chat { width: 100%; padding: 10px 12px; border: 0; border-radius: 9px; background: #e7e7e9; color: var(--ink); font-weight: 650; text-align: left; transition: background .18s ease, transform .18s ease; }
.new-chat:hover { background: #dddde0; transform: translateY(-1px); }
.sidebar-section { margin-top: 26px; }
.sidebar-section h2 { margin: 0 8px 9px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sidebar-link, .recent-prompts button { display: block; width: 100%; padding: 8px; border: 0; border-radius: 7px; color: #4d4d51; background: transparent; text-align: left; text-decoration: none; font-size: 13px; line-height: 1.35; }
.sidebar-link { color: var(--ink); background: #e6e6e8; font-weight: 600; }
.recent-prompts button:hover { background: #e7e7e9; color: var(--ink); }
.session-card { margin-top: auto; padding: 13px 8px 0; border-top: 1px solid #dddde0; }
.session-user { font-weight: 650; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-domain { margin-top: 3px; color: var(--muted); font-size: 12px; }
.logout { margin-top: 10px; padding: 0; border: 0; background: none; color: var(--muted); font-size: 12px; }
.logout:hover { color: var(--ink); text-decoration: underline; }

.chat-stage { grid-column: 2; min-width: 0; display: flex; flex-direction: column; min-height: 100vh; }
.stage-top { height: 63px; padding: 0 30px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #f0f0f1; }
.stage-top h1 { margin: 0; font-family: Bahnschrift, "Arial Narrow", sans-serif; font-size: 16px; font-weight: 700; letter-spacing: -.015em; }
.status { color: var(--muted); font-size: 12px; }
.chat-content { width: min(850px, calc(100% - 48px)); margin: 0 auto; padding: 0 0 158px; }
.welcome { min-height: calc(100vh - 220px); padding: 20vh 0 50px; text-align: center; animation: rise .45s ease both; }
.welcome h2 { max-width: 650px; margin: 0 auto 28px; font-family: Bahnschrift, "Arial Narrow", sans-serif; font-size: clamp(30px, 3.6vw, 48px); letter-spacing: -.045em; line-height: 1.05; }
.prompt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; max-width: 650px; margin: 0 auto; text-align: left; }
.prompt-grid button { min-height: 76px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: #353539; text-align: left; line-height: 1.35; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.prompt-grid button:hover { border-color: #b9b9bd; box-shadow: 0 7px 20px rgba(0,0,0,.06); transform: translateY(-2px); }
.conversation { padding: 36px 0 28px; }
.chat-message { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 22px; padding: 20px 0; animation: rise .25s ease both; }
.message-label { padding-top: 3px; color: var(--muted); font-size: 13px; font-weight: 700; }
.chat-message.user .message-label { color: var(--ink); }
.message-body { min-width: 0; color: #29292d; line-height: 1.64; }
.message-body p { margin: 0 0 13px; }
.message-body h1, .message-body h2, .message-body h3, .message-body h4 { margin: 24px 0 10px; font-family: Bahnschrift, "Arial Narrow", sans-serif; line-height: 1.16; letter-spacing: -.025em; }
.message-body h1 { font-size: 26px; }.message-body h2 { font-size: 22px; }.message-body h3 { font-size: 18px; }
.message-body ul { margin: 0 0 14px; padding-left: 20px; }
.message-body a { color: var(--ink); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.message-body code { padding: 2px 5px; border-radius: 4px; background: #eeeef0; font-size: .88em; }
.table-wrap { overflow-x: auto; margin: 16px 0; border: 1px solid var(--line); border-radius: 10px; }
.message-body table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: 13px; }
.message-body th, .message-body td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.message-body th { background: #f7f7f8; font-weight: 700; }.message-body tr:last-child td { border-bottom: 0; }
.typing { color: var(--muted); }.typing::after { content: ""; display: inline-block; width: 4px; height: 16px; margin-left: 4px; vertical-align: -3px; background: var(--ink); animation: blink 1s steps(2, start) infinite; }
.composer { position: fixed; z-index: 2; left: 258px; right: 0; bottom: 0; padding: 20px 24px 24px; background: linear-gradient(transparent, #fff 28%); }
.composer-inner { width: min(850px, calc(100% - 48px)); margin: 0 auto; padding: 10px 10px 10px 17px; display: flex; align-items: end; gap: 10px; border: 1px solid #dedee1; border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.composer textarea { flex: 1; resize: none; max-height: 180px; min-height: 26px; padding: 5px 0; border: 0; outline: none; color: var(--ink); line-height: 1.45; }
.composer textarea::placeholder { color: #929296; }
.send { width: 34px; height: 34px; flex: 0 0 34px; border: 0; border-radius: 10px; background: var(--ink); color: #fff; font-size: 17px; font-weight: 650; transition: background .18s ease, opacity .18s ease; }
.send:disabled { opacity: .38; cursor: default; }.send:not(:disabled):hover { background: #3d3d40; }
.message { width: min(850px, calc(100% - 48px)); min-height: 16px; margin: 7px auto 0; color: #9a3535; font-size: 12px; }
.file-card { display: grid; gap: 2px; max-width: 390px; margin: 16px 0; padding: 15px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: var(--soft); text-decoration: none; }.file-card span, .file-card small { color: var(--muted); font-size: 12px; }.file-card:hover { border-color: #bbb; }
.chart-card { margin: 18px 0; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }.chart-card figcaption { margin-bottom: 10px; font-weight: 700; }.chart-card img { display: block; max-width: 100%; height: auto; }.artifact-note { margin: 12px 0; color: var(--muted); font-size: 13px; }

.login-body { min-height: 100vh; background: #f5f5f6; }.login-layout { min-height: 100vh; display: grid; grid-template-columns: minmax(0, .95fr) minmax(390px, 1.05fr); }.login-intro { padding: clamp(34px, 7vw, 104px); display: flex; flex-direction: column; justify-content: center; }.login-intro .wordmark { padding: 0 0 48px; }.login-intro h1 { max-width: 520px; margin: 0; font-family: Bahnschrift, "Arial Narrow", sans-serif; font-size: clamp(40px, 5vw, 68px); letter-spacing: -.06em; line-height: .98; }.login-intro p { max-width: 440px; color: #656569; font-size: 17px; line-height: 1.65; }.login-card-wrap { display: grid; place-items: center; padding: 30px; background: #fff; }.login-card { width: min(430px, 100%); }.login-card h2 { margin: 0 0 8px; font-family: Bahnschrift, "Arial Narrow", sans-serif; font-size: 30px; letter-spacing: -.04em; }.login-card > p { margin: 0 0 28px; color: var(--muted); }.login-form { display: grid; gap: 15px; }.login-form label { display: grid; gap: 6px; color: #454549; font-size: 13px; font-weight: 650; }.login-form input { width: 100%; padding: 11px 12px; border: 1px solid #d7d7da; border-radius: 8px; outline: none; }.login-form input:focus { border-color: #77777b; box-shadow: 0 0 0 3px #eeeeef; }.login-submit { margin-top: 8px; padding: 12px 16px; border: 0; border-radius: 8px; background: var(--ink); color: #fff; font-weight: 700; }.login-submit:hover { background: #3d3d40; }.login-card .message { width: 100%; margin: 14px 0 0; }.message.success { color: #3d6844; }.message.error { color: #a13a3a; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes blink { 50% { opacity: 0; } }
@media (max-width: 760px) { .app-shell { display: block; }.sidebar { position: static; width: auto; height: auto; padding: 13px 16px; flex-direction: row; align-items: center; gap: 10px; border-right: 0; }.wordmark { padding: 0; }.new-chat { width: auto; margin-left: auto; }.sidebar-section, .session-card { display: none; }.chat-stage { min-height: calc(100vh - 55px); }.stage-top { height: 54px; padding: 0 18px; }.chat-content { width: min(100% - 28px, 850px); padding-bottom: 138px; }.welcome { min-height: calc(100vh - 190px); padding-top: 14vh; }.prompt-grid { grid-template-columns: 1fr; }.chat-message { grid-template-columns: 1fr; gap: 5px; padding: 16px 0; }.composer { left: 0; padding: 16px 14px 18px; }.composer-inner, .message { width: 100%; }.login-layout { grid-template-columns: 1fr; }.login-intro { min-height: 43vh; }.login-card-wrap { padding: 38px 24px; } }

/* Public chat shell: these names intentionally follow the pared-down HTML, not the archived verifier UI. */
.sidebar > .wordmark { padding: 0 8px 20px; }
.new-chat-button { width:100%; padding:10px 12px; border:0; border-radius:9px; color:var(--ink); background:#e6e6e8; text-align:left; font-weight:650; transition:background .18s ease,transform .18s ease; }
.new-chat-button span { margin-right:9px; font-size:19px; font-weight:400; vertical-align:-1px; }.new-chat-button:hover { background:#dddde0; transform:translateY(-1px); }
.sidebar-label { margin:0 8px 9px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.sidebar-navigation { min-height:0; flex:1 1 auto; overflow-y:auto; scrollbar-width:thin; }
.sidebar-link,.recent-prompt { display:block; width:100%; padding:8px; border:0; border-radius:7px; color:#505055; background:transparent; text-align:left; line-height:1.35; font-size:13px; }
.sidebar-link.active { color:var(--ink); background:#e6e6e8; font-weight:650; }.recent-prompt:hover { color:var(--ink); background:#e7e7e9; }
.sidebar-footer { display:flex; align-items:center; gap:9px; margin-top:auto; padding:13px 5px 0; border-top:1px solid #dddde0; }.user-avatar { display:grid; width:29px; height:29px; flex:0 0 29px; place-items:center; border-radius:50%; color:#fff; background:#55555a; font-size:12px; font-weight:700; }.user-copy { min-width:0; flex:1; }.user-copy strong,.user-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.user-copy strong { font-size:12px; }.user-copy span { margin-top:2px; color:var(--muted); font-size:11px; }.icon-button { border:0; background:transparent; color:var(--muted); font-size:17px; }.icon-button:hover { color:var(--ink); }
.stage-header { height:63px; display:flex; align-items:center; justify-content:space-between; padding:0 30px; border-bottom:1px solid #f0f0f1; }.stage-title { font-family:Bahnschrift,"Arial Narrow",sans-serif; font-size:16px; font-weight:720; letter-spacing:-.02em; }.stage-badge { display:inline-block; margin-left:7px; padding:2px 6px; border:1px solid #dedee1; border-radius:5px; color:var(--muted); font-family:Aptos,"Segoe UI",sans-serif; font-size:10px; letter-spacing:.02em; vertical-align:2px; }.status-text { color:var(--muted); font-size:12px; }
.welcome-panel,.conversation { width:min(850px,calc(100% - 48px)); margin:0 auto; }.welcome-panel { position:relative; min-height:calc(100vh - 220px); padding:18vh 0 48px; text-align:center; overflow:hidden; animation:rise .45s ease both; }.welcome-orbit { position:absolute; top:calc(18vh - 124px); left:50%; z-index:-1; width:400px; height:400px; border:1px solid #f0f0f1; border-radius:50%; transform:translateX(-50%); }.eyebrow { margin:0 0 12px; color:var(--muted); font-size:11px; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }.welcome-prefix { margin:0 0 12px; color:var(--muted); font-size:13px; font-weight:650; letter-spacing:.02em; }.welcome-panel h1 { margin:0; font-family:Bahnschrift,"Arial Narrow",sans-serif; font-size:clamp(32px,3.7vw,49px); line-height:1.04; letter-spacing:-.05em; }.welcome-copy { max-width:560px; margin:20px auto 28px; color:#656569; line-height:1.6; }
.welcome-mark { display:block; width:min(320px,72vw); height:auto; margin:0 auto 26px; filter:drop-shadow(0 12px 20px rgba(26,55,79,.12)); }
.conversation { padding:35px 0 158px; }.composer-wrap { position:fixed; z-index:2; right:0; bottom:0; left:258px; padding:20px 24px 24px; background:linear-gradient(transparent,#fff 28%); }.composer-wrap .composer { width:min(850px,calc(100% - 48px)); display:flex; align-items:end; gap:10px; margin:0 auto; padding:10px 10px 10px 17px; border:1px solid #dedee1; border-radius:18px; background:#fff; box-shadow:var(--shadow); }.composer-wrap textarea { flex:1; min-height:26px; max-height:180px; padding:5px 0; resize:none; border:0; outline:0; color:var(--ink); line-height:1.45; }.composer-wrap textarea::placeholder { color:#929296; }.send-button { width:34px; height:34px; flex:0 0 34px; border:0; border-radius:10px; color:#fff; background:var(--ink); font-size:18px; font-weight:650; }.send-button:disabled { opacity:.38; cursor:default; }.composer-message { width:min(850px,calc(100% - 48px)); min-height:16px; margin:7px auto 0; color:var(--muted); font-size:12px; }
.login-layout { min-height:100vh; display:grid; grid-template-columns:minmax(0,.95fr) minmax(390px,1.05fr); }.login-intro { padding:clamp(34px,7vw,104px); display:flex; flex-direction:column; justify-content:center; }.login-intro .wordmark { margin-bottom:48px; }.login-intro h1 { max-width:520px; margin:0; font-family:Bahnschrift,"Arial Narrow",sans-serif; font-size:clamp(40px,5vw,68px); line-height:.98; letter-spacing:-.06em; }.login-intro p:not(.eyebrow) { max-width:440px; color:#656569; font-size:17px; line-height:1.65; }.login-note { margin-top:50px!important; color:var(--muted)!important; font-size:12px!important; }.login-card { display:grid; align-content:center; padding:clamp(34px,8vw,120px); background:#fff; }.login-card-heading { margin-bottom:28px; }.login-card h2 { margin:0; font-family:Bahnschrift,"Arial Narrow",sans-serif; font-size:30px; letter-spacing:-.04em; }.login-form { display:grid; gap:15px; max-width:430px; }.login-form label { display:grid; gap:6px; color:#454549; font-size:13px; font-weight:650; }.login-form input { width:100%; padding:11px 12px; border:1px solid #d7d7da; border-radius:8px; outline:0; }.login-form input:focus { border-color:#77777b; box-shadow:0 0 0 3px #eeeeef; }.login-submit { margin-top:8px; padding:12px 16px; border:0; border-radius:8px; color:#fff; background:var(--ink); font-weight:700; text-align:left; }.login-submit span { float:right; font-size:18px; }.login-submit:hover { background:#3d3d40; }.login-message { min-height:18px; max-width:430px; margin:14px 0 0; font-size:13px; }.login-message.success { color:#3d6844; }.login-message.error { color:#a13a3a; }
@media (max-width:760px) { .sidebar > .wordmark { padding:0; }.new-chat-button { width:auto; margin-left:auto; }.sidebar-navigation,.sidebar-footer { display:none; }.stage-header { height:54px; padding:0 18px; }.welcome-panel,.conversation { width:min(100% - 28px,850px); }.welcome-panel { min-height:calc(100vh - 190px); padding-top:14vh; }.composer-wrap { left:0; padding:16px 14px 18px; }.composer-wrap .composer,.composer-message { width:100%; }.login-layout { grid-template-columns:1fr; }.login-intro { min-height:43vh; }.login-card { padding:38px 24px; } }

/* The public sign-in is deliberately quiet: one centered task on a white canvas. */
.login-body { background:#fff; }
.login-layout { display:grid; min-height:100vh; grid-template-columns:1fr; place-items:center; padding:32px 20px; }
.login-card { display:block; width:min(430px,100%); padding:0; background:transparent; }
.login-card-heading { margin-bottom:30px; }.login-wordmark { margin-bottom:34px; padding:0; }.login-card h2 { font-size:32px; }
.login-form label { font-weight:400; }
.login-submit:disabled { cursor:wait; opacity:.55; }
@media (max-width:760px) { .login-layout { padding:28px 20px; }.login-card { width:100%; }.login-card h2 { font-size:29px; } }

/* The two login glyphs use the exact local Material Icons font from Legacy. */
@font-face { font-family:"Material Icons"; font-style:normal; font-weight:400; font-display:block; src:url("/fonts/material-icons.woff2") format("woff2"); }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.login-card { width:min(500px,100%); }.login-form { gap:16px; max-width:none; }.login-field { display:flex!important; align-items:stretch; min-height:40px; overflow:hidden; border:1px solid #d8dadd; border-radius:4px; background:#fff; }.login-field:focus-within { border-color:#9a9da2; box-shadow:0 0 0 3px #edf0f2; }.login-field-icon { display:grid; width:56px; flex:0 0 56px; place-items:center; border-right:1px solid #d8dadd; color:#273848; }.login-field-icon .material-icons { font-family:"Material Icons"; font-size:24px; font-weight:normal; font-style:normal; line-height:1; letter-spacing:normal; text-transform:none; white-space:nowrap; word-wrap:normal; direction:ltr; font-feature-settings:"liga"; -webkit-font-feature-settings:"liga"; -webkit-font-smoothing:antialiased; }.login-field input { min-width:0; flex:1; padding:9px 10px; border:0; border-radius:0; box-shadow:none!important; }.login-field input:focus { box-shadow:none; }.login-actions { display:flex; justify-content:flex-end; margin-top:0; }.login-submit { min-width:109px; margin:0; padding:10px 18px; border-radius:4px; background:#70b647; text-align:center; }.login-submit:hover { background:#61a33d; }.login-message { max-width:500px; }
@media (max-width:760px) { .login-actions { justify-content:stretch; }.login-submit { width:100%; } }

/* Conversation view: user questions are visually distinct without technical sender labels. */
.welcome-panel,.conversation { width:min(1120px,calc(100% - 64px)); }
.conversation { padding-bottom:230px; }
.chat-message { display:flex; padding:18px 0; }
.message-label { display:none; }
.chat-message.user { justify-content:flex-end; }
.chat-message.user .message-body { max-width:min(76%,760px); padding:11px 15px; border-radius:18px 18px 4px 18px; background:#e7f2ff; color:#1e3853; line-height:1.5; }
.chat-message.user .message-body p { margin:0; }
.chat-message.assistant .message-body { width:100%; max-width:100%; }
.tool-progress { display:flex; align-items:center; gap:8px; min-height:28px; color:var(--muted); font-size:13px; }
.tool-progress span { width:13px; height:13px; border:2px solid #d3d3d6; border-top-color:#4f4f54; border-radius:50%; animation:tool-spin .8s linear infinite; }
.token-usage-summary { margin:18px 0 0!important; padding-top:10px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.45; }.token-usage-pricing { margin:0 0 9px!important; }.token-usage-table { width:min(440px,100%); border-collapse:collapse; font-size:12px; }.token-usage-table th,.token-usage-table td { padding:5px 8px; border-bottom:1px solid #ececee; text-align:left; }.token-usage-table thead th { color:#535357; background:#f7f7f8; font-size:11px; font-weight:700; }.token-usage-table tbody th { color:#535357; font-weight:500; }.token-usage-table td { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }.token-usage-table .token-usage-key-row th,.token-usage-table .token-usage-key-row td { color:var(--ink); font-weight:700; }.token-usage-table .token-usage-key-row:last-child th,.token-usage-table .token-usage-key-row:last-child td { border-top:1px solid #ccced2; }
.cost-estimate-summary { margin:5px 0 0!important; color:var(--muted); font-size:12px; line-height:1.45; }
.mileage-candidates-card { margin:4px 0 16px; }.mileage-candidates-intro { margin:0 0 12px!important; font-weight:650; }.mileage-candidates-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:10px; }.mileage-candidates-table { width:100%; min-width:960px; border-collapse:collapse; font-size:13px; }.mileage-candidates-table th,.mileage-candidates-table td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }.mileage-candidates-table th { background:#f7f7f8; font-weight:700; }.mileage-candidates-table tr:last-child td { border-bottom:0; }.mileage-review-button { padding:7px 10px; border:1px solid #b8cce1; border-radius:7px; color:#244b71; background:#edf6ff; font-size:12px; font-weight:650; }.mileage-review-button:hover { background:#dfefff; }.mileage-review-button:disabled { opacity:.65; cursor:wait; }.mileage-review-unavailable { color:var(--muted); font-size:12px; }.mileage-candidates-note { margin:10px 0 0!important; color:var(--muted); font-size:12px; }.mileage-review-result-row td { padding:14px!important; background:#f7fbff; }.mileage-review-result p { margin:7px 0!important; }.mileage-review-result ul { margin:8px 0 0!important; }.mileage-review-error { color:#9a3535; }
.all-outlays-card { margin:4px 0 16px; }.all-outlays-card h3 { margin:0 0 8px; }.all-outlays-period,.all-outlays-aggregation { margin:4px 0!important; color:var(--muted); font-size:13px; }.all-outlays-table-wrap { overflow-x:auto; margin-top:12px; border:1px solid var(--line); border-radius:10px; }.all-outlays-table { width:100%; min-width:760px; border-collapse:collapse; font-size:13px; }.all-outlays-table th,.all-outlays-table td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }.all-outlays-table th { background:#f7f7f8; font-weight:700; white-space:nowrap; }.all-outlays-table tr:last-child td { border-bottom:0; }.all-outlays-guidance { margin:10px 0 0!important; color:var(--muted); font-size:12px; }.all-outlays-empty { margin:12px 0 0!important; color:var(--muted); }
.table-export-actions { display:flex; align-items:center; gap:10px; padding:8px 10px; border-bottom:1px solid var(--line); background:#fafbfa; }.table-export-button { border:1px solid #5a9d3c; border-radius:6px; padding:6px 10px; color:#fff; background:#67ad48; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }.table-export-button:hover:not(:disabled) { background:#528f39; }.table-export-button:disabled { cursor:wait; opacity:.7; }.table-export-status { color:var(--muted); font-size:12px; }.table-export-status.is-error { color:#a12f2f; }
.large-outlays-card { margin:4px 0 16px; }.large-outlays-card h3 { margin:0 0 8px; }.large-outlays-period,.large-outlays-count { margin:4px 0!important; color:var(--muted); font-size:13px; }.large-outlays-card .all-outlays-table-wrap { margin-top:12px; }.large-outlays-guidance,.large-outlays-empty { margin:10px 0 0!important; color:var(--muted); font-size:12px; }
.my-time-card { margin:4px 0 16px; }.my-time-card h3 { margin:0 0 8px; }.my-time-count { margin:4px 0!important; color:var(--muted); font-size:13px; }.my-time-card .all-outlays-table-wrap { margin-top:12px; }.my-time-guidance,.my-time-empty { margin:10px 0 0!important; color:var(--muted); font-size:12px; }
.my-missing-time-card { margin:4px 0 16px; }.my-missing-time-card h3 { margin:0 0 8px; }.my-missing-time-count { margin:4px 0!important; color:var(--muted); font-size:13px; }.my-missing-time-card .all-outlays-table-wrap { margin-top:12px; }.my-missing-time-guidance,.my-missing-time-empty { margin:10px 0 0!important; color:var(--muted); font-size:12px; }
.approved-outlays-card { margin:4px 0 16px; }.approved-outlays-card h3 { margin:0 0 8px; }.approved-outlays-count { margin:4px 0!important; color:var(--muted); font-size:13px; }.approved-outlays-card .all-outlays-table-wrap { margin-top:12px; }.approved-outlays-guidance,.approved-outlays-empty { margin:10px 0 0!important; color:var(--muted); font-size:12px; }
.resource-control-package-card { margin:4px 0 16px; }.resource-control-package-card h3 { margin:0 0 8px; }.resource-control-package-meta { margin:4px 0!important; color:var(--muted); font-size:13px; }.resource-control-package-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }.resource-control-package-chart { min-height:178px; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fff; }.resource-control-package-chart h4 { margin:0 0 14px; font-size:14px; }.resource-control-package-bars { display:grid; gap:9px; }.resource-control-package-bar-row { display:grid; grid-template-columns:minmax(74px,1fr) minmax(72px,1.35fr) auto; gap:8px; align-items:center; font-size:12px; }.resource-control-package-bar-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.resource-control-package-bar-track { height:9px; overflow:hidden; border-radius:999px; background:#e8edf1; }.resource-control-package-bar { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#1e806c,#55ae88); }.resource-control-package-bar-value { color:var(--muted); font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; }.resource-control-package-chart-note { margin:12px 0 0!important; color:var(--muted); font-size:12px; line-height:1.4; }.resource-control-package-details { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }.resource-control-package-details h4 { margin:0 0 14px; }.resource-control-package-details h5 { margin:18px 0 8px; font-size:14px; }.resource-control-package-details .large-outlays-card,.resource-control-package-details .mileage-candidates-card { margin-bottom:20px; }
.customer-result-card { margin:4px 0 16px; }.customer-result-card h3 { margin:0 0 8px; }.customer-result-count { margin:4px 0!important; color:var(--muted); font-size:13px; }.customer-result-card .all-outlays-table-wrap { margin-top:12px; }.customer-result-guidance,.customer-result-empty { margin:10px 0 0!important; color:var(--muted); font-size:12px; }
.composer-wrap { bottom:56px; }
.composer-wrap .composer,.composer-message { width:min(1120px,calc(100% - 64px)); }
@media (max-width:760px) { .welcome-panel,.conversation { width:min(100% - 28px,1120px); }.conversation { padding-bottom:190px; }.chat-message.user .message-body { max-width:88%; }.composer-wrap { bottom:22px; }.composer-wrap .composer,.composer-message { width:100%; }.resource-control-package-charts { grid-template-columns:1fr; } }
@keyframes tool-spin { to { transform:rotate(360deg); } }

/* Override the archived verifier layout: the public composer is its own raised shell. */
.composer-wrap { position:fixed; z-index:2; right:0; bottom:0; left:258px; padding:0 24px 20px; background:#fff; }
.composer-wrap .composer { position:static; left:auto; right:auto; bottom:auto; min-height:108px; padding:16px 14px 16px 18px; align-items:stretch; background:#fff; }
.composer-wrap textarea { min-height:72px; align-self:stretch; }
.composer-wrap .send-button,.composer-wrap .stop-button { align-self:center; }
@media (max-width:760px) { .composer-wrap { left:0; bottom:0; padding:0 14px 14px; }.composer-wrap .composer { min-height:94px; }.composer-wrap textarea { min-height:60px; } }

/* The prompt library stays compact: choose one area, then see only its relevant prompts. */
.composer-message:empty { display:none; }
.stop-button { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; border:0; border-radius:10px; color:#fff; background:var(--ink); cursor:pointer; }.stop-button:hover { background:#3d3d40; }.stop-button:disabled { opacity:.55; cursor:default; }.stop-button-mark { width:11px; height:11px; border-radius:2px; background:currentColor; }.stream-stopped-note { margin:0; color:var(--muted); font-size:13px; font-style:italic; }
:root { --sidebar-open-width: 360px; --sidebar-collapsed-width: 72px; }
.app-shell { grid-template-columns: var(--sidebar-open-width) minmax(0, 1fr); }
.sidebar { z-index: 10; width: var(--sidebar-open-width); padding: 16px; overflow: visible; }
.sidebar-top { flex: 0 0 auto; }.sidebar-brand-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.sidebar .wordmark { padding: 0; }.sidebar-toggle { width: 30px; height: 30px; border: 1px solid #d8d8dc; border-radius: 8px; color: var(--muted); background: #fafafa; font-size: 21px; line-height: 1; }.sidebar-toggle:hover { color: var(--ink); background: #fff; }
.new-chat-button { display: flex; align-items: center; gap: 10px; }.new-chat-button span { margin: 0; }
.sidebar-navigation { display: grid; align-content: start; flex: 1 1 auto; overflow: hidden; margin-top: 18px; }
.category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }.category-tile { min-height: 58px; padding: 10px; border: 1px solid #d8d8dc; border-radius: 10px; color: #535357; background: #fafafa; font-size: 12px; font-weight: 700; line-height: 1.15; text-align: left; }.category-tile:hover,.category-tile:focus-visible { border-color: #989aa0; color: var(--ink); background: #fff; outline: 0; }.category-tile.active { border-color: #aeb1b7; color: var(--ink); background: #e3e4e7; box-shadow: inset 0 0 0 1px #d2d3d7; }
.prompt-panel { position: fixed; z-index: 20; display: grid; width: min(330px, calc(100vw - 32px)); gap: 4px; padding: 14px; border: 1px solid #d4d5d9; border-radius: 12px; background: rgba(255,255,255,.98); box-shadow: 0 18px 46px rgba(25,28,35,.18); }.prompt-panel::before { position: absolute; top: -12px; bottom: -12px; left: -20px; width: 20px; content: ""; }.prompt-panel[hidden] { display: none; }.flyout-title { margin: 0 0 5px; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }.prompt-panel .recent-prompt { padding: 8px 9px; }
.sidebar-footer { flex: 0 0 auto; }
.composer-wrap { left: var(--sidebar-open-width); }
body.sidebar-collapsed .app-shell { grid-template-columns: var(--sidebar-collapsed-width) minmax(0, 1fr); } body.sidebar-collapsed .sidebar { width: var(--sidebar-collapsed-width); padding: 16px 10px; } body.sidebar-collapsed .sidebar-brand-row { justify-content: center; } body.sidebar-collapsed .wordmark-text,body.sidebar-collapsed .new-chat-label,body.sidebar-collapsed .sidebar-navigation,body.sidebar-collapsed .sidebar-footer { display: none; } body.sidebar-collapsed .sidebar-toggle { position: absolute; top: 20px; left: 21px; } body.sidebar-collapsed .new-chat-button { justify-content: center; width: 52px; height: 48px; margin-top: 42px; padding: 0; } body.sidebar-collapsed .new-chat-button > span { font-size: 24px; } body.sidebar-collapsed .composer-wrap { left: var(--sidebar-collapsed-width); }
@media (max-width:760px) { .app-shell { display:block; }.sidebar { position:static; width:auto; height:auto; padding:13px 16px; flex-direction:row; align-items:center; }.sidebar-top { display:flex; align-items:center; width:100%; }.sidebar-brand-row { margin:0; }.sidebar-toggle,.sidebar-navigation,.sidebar-footer { display:none; }.new-chat-button { width:auto; margin-left:auto; }.composer-wrap { left:0; } body.sidebar-collapsed .sidebar { width:auto; padding:13px 16px; } body.sidebar-collapsed .sidebar-top { display:flex; } body.sidebar-collapsed .wordmark-text,body.sidebar-collapsed .new-chat-label { display:inline; } body.sidebar-collapsed .new-chat-button { width:auto; height:auto; margin:0 0 0 auto; padding:10px 12px; } body.sidebar-collapsed .new-chat-button > span { font-size:19px; } .prompt-panel { display:none!important; } }
