:root{color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#f5f6f8;color:#1a1d21;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}main{max-width:1100px;margin:0 auto;padding:1.5rem}main:has(>.budget){max-width:none}nav{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}nav button{padding:.5rem 1rem;border:1px solid #ccd1d9;border-radius:6px;background:#fff;cursor:pointer;font-size:.95rem}nav button:hover{background:#eef1f5}h1{font-size:1.6rem;margin:0 0 1rem}.login{max-width:320px;margin:4rem auto;display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;background:#fff;border:1px solid #ccd1d9;border-radius:8px}.login input{padding:.5rem;border:1px solid #ccd1d9;border-radius:6px;font-size:1rem}.login button{padding:.55rem;border:none;border-radius:6px;background:#2c5cf0;color:#fff;font-size:1rem;cursor:pointer}.problem{color:#b42318}.home ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.home button{width:100%;padding:1rem;font-size:1.05rem;border:1px solid #ccd1d9;border-radius:8px;background:#fff;cursor:pointer}.home button:hover{background:#eef1f5}.banner{background:#fdf0d5;border:1px solid #e8b84b;border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem}.banner ul{margin:.5rem 0 0;padding-left:1.2rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.kpi-card{background:#fff;border:1px solid #ccd1d9;border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.35rem}.kpi-card header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.kpi-card header h3{margin:0;font-size:1rem}.kpi-failed,.kpi-missing{border-left:4px solid #e8a23d}.kpi-stale{border-left:4px solid #e8c76a}.kpi-feed_broken{border-left:4px solid #8a909c}.kpi-value{font-size:2.5rem;font-weight:600;margin:.1rem 0}.kpi-problem{color:#92400e;font-weight:500;margin:.1rem 0}.kpi-meta{color:#5b6270;font-size:.85rem;margin:0}.kpi-description{color:#5b6270;font-size:.85rem;margin:.25rem 0 0}.kpi-stamp{color:#8a909c;font-size:.75rem;margin:.25rem 0 0}.sparkline{width:100%;height:40px;color:#2c5cf0}.sparkline-empty{color:#8a909c;font-size:.8rem;height:40px;display:flex;align-items:center}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}.dot-green{background:#1a7f37}.dot-red{background:#cf222e}.needs-you{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.needs-you li{background:#fff;border:1px solid #ccd1d9;border-radius:8px;padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.needs-you label{flex:1 1 auto}.needs-you input{width:6rem;padding:.4rem;border:1px solid #ccd1d9;border-radius:6px}table.definitions{width:100%;border-collapse:collapse;background:#fff}table.definitions th,table.definitions td{border:1px solid #ccd1d9;padding:.5rem .65rem;text-align:left;vertical-align:top;font-size:.9rem}table.definitions pre{margin:0;max-width:320px;white-space:pre-wrap;font-size:.8rem}table.definitions .editor{display:flex;flex-direction:column;gap:.5rem;max-width:480px}table.definitions .editor textarea{font-family:monospace;padding:.5rem;border:1px solid #ccd1d9;border-radius:6px}table.definitions .editor input{padding:.4rem;border:1px solid #ccd1d9;border-radius:6px}.budget-meta{color:#5b6270;font-size:.9rem;margin:0 0 .75rem}.budget-upload{display:flex;flex-direction:column;gap:.5rem;max-width:320px;padding:1rem;background:#fff;border:1px solid #ccd1d9;border-radius:8px;margin-top:1rem}.budget-upload h2{margin:0 0 .25rem;font-size:1.05rem}.budget-upload input{padding:.4rem;border:1px solid #ccd1d9;border-radius:6px}.budget-upload-problems{margin:.25rem 0 0;padding-left:1.2rem}.budget-area{margin-bottom:2.5rem}.budget-area h2{margin:0 0 .4rem;font-size:1.3rem}.budget-sentence{margin:0 0 .9rem;font-size:1.05rem;line-height:1.45}.budget-figures{display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 1rem}.budget-figures div{min-width:150px;padding:.6rem .8rem;background:#fff;border:1px solid #ccd1d9;border-radius:8px}.budget-figures dt{color:#5b6270;font-size:.8rem}.budget-figures dd{margin:.15rem 0 0;font-size:1.15rem;font-weight:600}.budget-grid-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #ccd1d9;border-radius:8px}table.budget-grid{border-collapse:collapse;width:100%;font-size:.82rem}table.budget-grid caption{text-align:left;font-weight:600;padding:.6rem .75rem}table.budget-grid th,table.budget-grid td{border-top:1px solid #e3e6eb;padding:.35rem .5rem;text-align:right;white-space:nowrap;vertical-align:top}table.budget-grid th[scope=row],table.budget-grid thead th:first-child{position:sticky;left:0;z-index:1;text-align:left;background:#fff;white-space:nowrap}table.budget-grid th[scope=row] .budget-split,table.budget-grid th[scope=row] .budget-note{display:block}@media(max-width:600px){table.budget-grid th[scope=row],table.budget-grid thead th:first-child{white-space:normal;max-width:10rem}}table.budget-grid thead th{background:#eef1f5;font-weight:600}table.budget-grid thead th:first-child{background:#eef1f5}table.budget-grid .budget-month span,table.budget-grid .budget-month small{display:block}table.budget-grid .budget-month small{font-weight:400;color:#5b6270;font-size:.7rem}table.budget-grid .budget-month small{white-space:normal;max-width:5.5rem;margin-left:auto;line-height:1.2}table.budget-grid .budget-month-closed small{color:#1f6f43}.budget-over{color:#92400e;font-weight:600}.budget-under{color:#5b6270}.budget-cell-detail{display:block;margin-top:.25rem;max-width:14rem;white-space:normal;text-align:left;font-size:.72rem;color:#1a1d21;background:#fffaf0;border-left:3px solid #e8a23d;padding:.25rem .4rem}.budget-toggle{border:none;background:none;padding:0;font:inherit;font-weight:600;color:#2c5cf0;cursor:pointer;text-align:left}.budget-toggle:before,.budget-line-toggle:before{content:"▸ "}.budget-toggle[aria-expanded=true]:before,.budget-line-toggle[aria-expanded=true]:before{content:"▾ "}table.budget-grid tr.budget-line th[scope=row]{padding-left:1.4rem;font-weight:400}table.budget-grid tr.budget-part th[scope=row]{padding-left:2.4rem;font-weight:400;color:#5b6270}table.budget-grid tr.budget-line,table.budget-grid tr.budget-part,table.budget-grid tr.budget-line th[scope=row],table.budget-grid tr.budget-part th[scope=row]{background:#fafbfc}.budget-split,.budget-note{color:#5b6270}.budget-tracker-note{padding:.5rem .75rem;background:#fffaf0;border-left:4px solid #e8a23d;border-radius:6px}.budget-tracker-note p{margin:0}.budget-tracker-note summary{cursor:pointer;margin-top:.35rem;color:#3a4150}.budget-tracker-note ul{margin:.35rem 0 0;padding-left:1.2rem}.budget-comments{margin-top:.75rem;padding:.75rem 1rem;background:#fff;border:1px solid #ccd1d9;border-radius:8px;font-size:.9rem}.budget-comments h3{margin:0 0 .4rem;font-size:1rem}.budget-comments h4{margin:.6rem 0 .2rem;font-size:.9rem;color:#5b6270}.budget-comments ul{margin:0;padding-left:1.2rem}.budget-year{display:inline-flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.budget-upload-reply{margin-top:1rem;padding:.75rem 1rem;background:#fff;border:1px solid #ccd1d9;border-left:4px solid #2c5cf0;border-radius:8px;font-size:.9rem;line-height:1.45}.budget-upload-reply h3{margin:.5rem 0 .25rem;font-size:.95rem;color:#92400e}.budget-upload-reply ul{margin:0;padding-left:1.2rem}.home-budget-lines{margin:.35rem 0 0;padding-left:1.1rem;color:#5b6270;font-size:.85rem}table.budget-grid tbody.budget-block{border-top:2px solid #ccd1d9}table.budget-grid tr.budget-category-head th[scope=row]{font-weight:600;background:#f5f6f8;padding-top:.55rem}table.budget-grid tr.budget-measure th[scope=row]{padding-left:1.4rem;font-weight:400;color:#5b6270}table.budget-grid tr.budget-spent-row td{font-weight:600}table.budget-grid tr.budget-lines-head th[scope=row]{padding-left:1.4rem;font-weight:400;font-style:italic;color:#5b6270;background:#fafbfc}table.budget-grid tr.budget-line th[scope=row]{padding-left:2.2rem}table.budget-grid tr.budget-part th[scope=row]{padding-left:3.4rem}table.budget-grid tr.budget-line td,table.budget-grid tr.budget-part td{color:#5b6270}.budget-toggle-hint{margin-left:.6rem;font-weight:400;font-size:.75rem;color:#5b6270}.budget-line-toggle,.budget-comment-button{border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.budget-line-toggle{color:#2c5cf0}.budget-comment-mark{margin-left:1px;font-weight:700;color:#92400e}table.budget-grid tbody.budget-quiet th[scope=row]{font-weight:400;font-style:italic;color:#8a909b}table.budget-grid tbody.budget-total{border-top:3px solid #1a1d21}table.budget-grid .budget-month-start{border-left:1px solid #ccd1d9}table.budget-grid thead th.budget-sub{font-weight:400;font-size:.7rem;color:#5b6270;background:#f5f6f8}table.budget-grid tr.budget-category-row th[scope=row],table.budget-grid tr.budget-category-row td{font-weight:600;background:#f5f6f8}table.budget-grid tr.budget-category-row td.budget-col-diff{font-weight:400}table.budget-grid tr.budget-category-note th[scope=row]{padding-left:1.4rem;font-weight:400;font-style:italic;color:#5b6270;white-space:normal}table.budget-grid tr.budget-line th[scope=row]{padding-left:1.4rem}table.budget-grid tr.budget-part th[scope=row]{padding-left:2.6rem}table.budget-grid th[scope=row] .budget-note{white-space:normal;max-width:28rem;font-style:italic}table.budget-grid thead th.budget-month{text-align:center}.budget-spent-assumed{color:#8a909c}.budget-spent-typed{color:inherit;font-weight:600}.budget-spent-button{border:none;border-bottom:1px dotted #b8bdc7;background:none;padding:0;font:inherit;cursor:pointer}.budget-spent-input{width:6.5rem;font:inherit;text-align:right;padding:.1rem .25rem}.budget-unplaced th[scope=row]{font-style:italic}.budget-unplaced{background:#fffaf0}.budget-change-button,.budget-link-button{margin-left:.5rem;border:none;background:none;padding:0;font:inherit;font-size:.8rem;color:#2563eb;cursor:pointer;text-decoration:underline}.budget-link-button{margin-left:0}.budget-add-row td{text-align:left;padding-left:1.5rem}.budget-removed th[scope=row],.budget-removed td{color:#8a909c}.budget-editor-row>td{text-align:left;white-space:normal;background:#f8fafc;padding:.75rem 1rem}.line-editor h3{margin:0 0 .5rem;font-size:1rem}.line-editor h4{margin:.5rem 0 .25rem;font-size:.85rem}.line-editor-fields{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}.line-editor-fields input[type=text]{min-width:14rem}.line-editor-months{display:grid;grid-template-columns:repeat(12,minmax(4.5rem,1fr));gap:.35rem;margin:.5rem 0}.line-editor-month{display:flex;flex-direction:column;font-size:.8rem}.line-editor-month input{width:100%;text-align:right;font:inherit}.line-editor-ended{color:#8a909c;text-align:right;padding:.15rem 0}.line-editor-fill,.line-editor-split,.line-editor-actions,.line-editor-confirm{margin:.5rem 0}.line-editor-fill input{width:7rem}.line-editor-percent{width:3.5rem;text-align:right}.line-editor-actions button,.line-editor-confirm button{margin-right:.5rem}.line-editor-remove{margin-left:1.5rem;color:#92400e}@media(max-width:600px){.line-editor-months{grid-template-columns:repeat(3,1fr)}}.budget-history{margin:1.5rem 0}.budget-history summary{cursor:pointer;font-weight:600}.budget-history>ul{list-style:none;padding:0}.budget-history>ul>li{border-top:1px solid #e5e7eb;padding:.5rem 0}.budget-history h4{margin:.1rem 0;font-size:.95rem}.budget-history li ul{margin:.2rem 0 .4rem}
