:root{color-scheme:light;--bg: #f4f7fb;--panel: #ffffff;--ink: #12202f;--muted: #4f6478;--line: #d5dfeb;--primary: #0e6ba8;--ok: #1e824c;--warn: #a26300;--err: #b42424}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;background:radial-gradient(circle at 20% 0%,#ffffff,var(--bg) 42%);color:var(--ink)}.page{max-width:1100px;margin:0 auto;padding:1.25rem;display:grid;gap:1rem}.top-nav{max-width:1100px;margin:0 auto;padding:.75rem 1.25rem 0;display:flex;gap:.5rem;flex-wrap:wrap}.top-nav a{text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.35rem .75rem;font-size:.85rem}.top-nav a.active{border-color:var(--primary);color:var(--primary)}.top-nav-action{border-radius:999px;padding:.35rem .75rem;font-size:.85rem;background:#fff}.top-nav-action-primary{border-color:color-mix(in srgb,var(--primary),white 70%);background:color-mix(in srgb,var(--primary),white 92%);color:var(--primary)}.global-realtime-bar{max-width:1100px;margin:0 auto;padding:.4rem 1.25rem 0;display:flex;align-items:center;gap:.5rem}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.auth-page{min-height:100vh;align-content:center;max-width:520px}.auth-card,.auth-form,.auth-form label{display:grid;gap:.75rem}.auth-form span{color:var(--muted);font-size:.85rem}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-size:.8rem}h1,h2{margin:.25rem 0 .5rem}.muted{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem}.actions{display:flex;gap:.6rem;flex-wrap:wrap}button{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:.5rem .75rem;cursor:pointer}button:hover{border-color:var(--primary)}button:disabled{opacity:.7}button.danger{border-color:#c2410c;color:#9a3412;background:#fff7ed}button.danger:hover:not(:disabled){border-color:#9a3412;background:#ffedd5}.button-link{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:.5rem .75rem;text-decoration:none}.button-link:hover{border-color:var(--primary)}.socket{padding:.4rem .7rem;border-radius:999px;border:1px solid;font-size:.85rem;text-transform:uppercase}.socket-ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok),white 70%);background:color-mix(in srgb,var(--ok),white 92%)}.socket-warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn),white 70%);background:color-mix(in srgb,var(--warn),white 92%)}.socket-err{color:var(--err);border-color:color-mix(in srgb,var(--err),white 70%);background:color-mix(in srgb,var(--err),white 92%)}.notice{margin:0;padding:.65rem .8rem;border-radius:10px;font-size:.9rem}.notice.ok{color:var(--ok);background:color-mix(in srgb,var(--ok),white 90%)}.notice.err{color:var(--err);background:color-mix(in srgb,var(--err),white 90%)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.stats div{border:1px solid var(--line);border-radius:10px;padding:.65rem;display:grid;gap:.25rem}.admin-modules-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.6fr);gap:1rem;align-items:start}.admin-module-list,.admin-module-detail,.admin-settings,.admin-settings-list,.admin-setting-new,.admin-setting-row,.admin-devices-panel,.admin-devices-list,.admin-device-row{display:grid;gap:.75rem}.admin-module-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:.75rem;text-align:left}.admin-module-row.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary),white 94%)}.admin-module-row span:first-child,.admin-setting-title div:first-child{min-width:0;display:grid;gap:.15rem}.admin-module-row small,.admin-setting-title small{color:var(--muted);overflow-wrap:anywhere}.admin-module-header,.admin-section-header,.admin-setting-title{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin-module-meta{display:flex;gap:.5rem;flex-wrap:wrap}.admin-module-meta span,.status-pill{border:1px solid var(--line);border-radius:999px;padding:.25rem .55rem;font-size:.8rem}.status-pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok),white 70%);background:color-mix(in srgb,var(--ok),white 92%)}.status-pill.off{color:var(--muted);background:#f8fafc}.admin-setting-row{border:1px solid var(--line);border-radius:10px;padding:.75rem}.admin-setting-new label{display:grid;gap:.25rem}.admin-setting-new span,.admin-device-register span{color:var(--muted);font-size:.85rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;color:var(--ink);background:#fff;font:inherit}.admin-device-register{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,.5fr) auto;gap:.75rem;align-items:end}.admin-device-register label{display:grid;gap:.25rem}.admin-device-qr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:start;border:1px solid var(--line);border-radius:12px;padding:1rem;background:#f8fafc}.admin-device-qr img{width:220px;max-width:100%;border-radius:10px;background:#fff;border:1px solid var(--line)}.admin-device-qr dl,.admin-device-qr dl div{display:grid;gap:.25rem}.admin-device-qr dl{margin:.75rem 0}.admin-device-qr dt{color:var(--muted);font-size:.8rem}.admin-device-qr dd{margin:0;overflow-wrap:anywhere}.admin-device-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--line);border-radius:10px;padding:.75rem}.admin-device-row div:first-child{display:grid;gap:.15rem;min-width:0}.admin-device-row small{color:var(--muted);overflow-wrap:anywhere}textarea{resize:vertical;min-height:7rem;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.9rem}@media(max-width:760px){.admin-modules-layout{grid-template-columns:1fr}.admin-module-header,.admin-section-header,.admin-setting-title,.admin-device-row{align-items:stretch;flex-direction:column}.admin-device-register,.admin-device-qr,.admin-device-row{grid-template-columns:1fr}}.depot-page .stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.depot-page .stats div{min-width:0;padding:.55rem .6rem}.depot-page .stats strong{font-size:1rem;overflow-wrap:anywhere}.depot-page .stats span{font-size:.78rem;line-height:1.2}@media(max-width:820px){.depot-page .stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.job-list,.entry-list,.link-list{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}.job-list li,.entry-list li,.link-list li{border:1px solid var(--line);border-radius:10px;padding:.65rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.link-list li{display:grid;gap:.7rem}.job-list p,.entry-list p{margin:.25rem 0;color:var(--muted)}.dream-chat-list li.dream-chat-item{display:block}.dream-chat-role-input{border-left:4px solid color-mix(in srgb,var(--primary),white 55%);background:color-mix(in srgb,var(--primary),white 96%)}.dream-chat-role-output{border-left:4px solid color-mix(in srgb,var(--ok),white 40%);background:color-mix(in srgb,var(--ok),white 95%)}.dream-chat-role-tool{border-left:4px solid color-mix(in srgb,var(--warn),white 35%);background:color-mix(in srgb,var(--warn),white 95%)}.dream-chat-role-event{border-left:4px solid color-mix(in srgb,var(--line),var(--ink) 20%)}.dream-chat-detail{margin:.4rem 0;padding:.5rem .65rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chips span{border:1px solid var(--line);border-radius:999px;padding:.2rem .55rem;font-size:.8rem}.link-form{display:grid;gap:.6rem;grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) auto auto}.filters-form{display:grid;gap:.6rem;grid-template-columns:repeat(4,minmax(140px,1fr)) auto auto}.filters-form input{border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem}.filters-form label{display:grid;gap:.3rem;color:var(--muted);font-size:.85rem}.filters-form textarea{border:1px solid var(--line);border-radius:10px;font:inherit;line-height:1.45;padding:.55rem .7rem;resize:vertical}.filters-form .wide{grid-column:1 / -1}.metadata-form,.wiki-edit-form{grid-template-columns:repeat(3,minmax(180px,1fr)) auto;margin-top:1rem}.bank-page{gap:.8rem}.bank-command-bar,.depot-command-bar,.bank-section-header,.bank-tabs,.bank-compact-list li,.bank-review-list li,.bank-transaction-list li{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.bank-command-bar,.depot-command-bar{padding:.75rem 1rem}.depot-tabs{position:static;margin-bottom:.9rem}.depot-login-panel dl{display:grid;gap:.6rem;margin:.8rem 0 0}.depot-login-panel dl div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:.8rem}.depot-login-panel dt{color:var(--muted)}.depot-login-panel dd{margin:0;word-break:break-word}.depot-account-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem}.depot-account-list li{border:1px solid var(--line);border-radius:8px;padding:.75rem;display:grid;gap:.25rem}.depot-account-list span{color:var(--muted);font-size:.9rem}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:980px}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:.65rem .55rem;text-align:left;vertical-align:top}.data-table th{color:var(--muted);font-size:.8rem;text-transform:uppercase}.data-table td span{display:block;color:var(--muted);font-size:.86rem;margin-top:.2rem}.rss-page{max-width:1260px}.rss-feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.8rem}.rss-feed-card,.rss-item-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:.85rem;display:grid;gap:.7rem}.rss-feed-card.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary),white 94%)}.rss-feed-card h3,.rss-item-card h3{margin:0 0 .25rem}.rss-feed-card a,.rss-item-card a{overflow-wrap:anywhere}.rss-filter-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem;margin:.8rem 0}.rss-filter-bar input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:.55rem .65rem;font:inherit}.rss-item-list{display:grid;gap:.8rem}.rss-item-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:start}.rss-item-card p{margin:0}.rss-item-preview{border-top:1px solid var(--line);padding-top:.6rem}.rss-item-preview summary{cursor:pointer;color:var(--primary);font-weight:600}@media(max-width:760px){.rss-filter-bar,.rss-item-head{grid-template-columns:1fr}}.camera-page{max-width:1260px}.camera-tabs{display:flex;gap:.5rem;flex-wrap:wrap;padding:.65rem}.camera-tabs button,.camera-segment button{border-radius:8px}.camera-tabs button.active,.camera-segment button.active,.camera-face-row.active{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary),white 92%)}.camera-event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem}.camera-event-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;display:grid;grid-template-rows:220px auto}.camera-event-image,.camera-gallery img,.camera-face-row img,.camera-empty-thumb,.camera-empty-image{width:100%;height:100%;object-fit:cover;background:#e8eef5}.camera-event-image,.camera-gallery .camera-image-button,.camera-gallery .camera-empty-image{background:#f3f6fa}.camera-event-image img,.camera-gallery img{object-fit:contain}.camera-image-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;width:100%;height:100%;display:block;cursor:zoom-in;background:transparent}.camera-image-button:focus-visible{outline:3px solid color-mix(in srgb,var(--primary),white 35%);outline-offset:-3px}.camera-image-button img{width:100%;height:100%;display:block}.camera-event-body{padding:.75rem;display:grid;gap:.6rem}.camera-event-body>div:first-child{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline}.camera-event-body time{color:var(--muted);font-size:.82rem;text-align:right}.camera-event-body p{margin:0}.camera-detection-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.45rem}.camera-detection-chip{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto auto;gap:.1rem .45rem;align-items:center;min-width:0;padding:.35rem;text-align:left;border:1px solid var(--line);border-radius:8px}.camera-detection-chip.needs-review{border-color:color-mix(in srgb,var(--primary),white 45%);background:color-mix(in srgb,var(--primary),white 95%)}.camera-detection-preview{grid-row:1 / 4;width:40px;height:40px;padding:0;overflow:hidden;border-radius:6px}.camera-detection-preview img,.camera-detection-preview>span{width:40px;height:40px;object-fit:cover;background:#e8eef5}.camera-detection-chip strong,.camera-detection-chip small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-detection-chip small{color:var(--muted)}.camera-detection-chip>button:not(.camera-detection-preview){justify-self:start;padding:.25rem .45rem}.camera-face-chip-form{grid-column:1 / -1;display:grid;gap:.35rem;margin-top:.35rem}.camera-face-chip-form select,.camera-face-chip-form input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;font:inherit}.camera-assign-form{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.45rem;align-items:center}.camera-segment{display:flex;gap:.25rem}.camera-assign-form select,.camera-assign-form input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;font:inherit}.camera-face-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:1rem}.camera-section-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.camera-section-head h2{margin:0}.camera-training-health{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:.55rem 0}.camera-training-health div{display:grid;gap:.15rem;padding:.55rem;border:1px solid var(--line);border-radius:8px;background:#fff}.camera-training-warnings{display:grid;gap:.35rem;margin-bottom:.7rem}.camera-training-warnings button{text-align:left;border-color:color-mix(in srgb,#c47b00,white 45%);background:#fff8eb}.camera-face-list{display:grid;gap:.55rem}.camera-face-row{width:100%;display:grid;grid-template-columns:56px minmax(0,1fr);gap:.65rem;align-items:center;text-align:left;border-radius:8px}.camera-face-row img,.camera-empty-thumb{height:56px;border-radius:6px}.camera-face-row span{min-width:0;display:grid;gap:.15rem}.camera-face-row small{color:var(--muted)}.camera-face-detail{min-width:0;display:grid;gap:.8rem}.camera-face-detail h3{margin:.25rem 0 0}.camera-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.7rem}.camera-gallery figure{margin:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;display:grid;grid-template-rows:190px auto}.camera-gallery figure .camera-detection-strip{padding:0 .55rem .55rem}.camera-gallery img,.camera-gallery .camera-empty-image,.camera-gallery .camera-image-button{height:190px}.camera-gallery figcaption{display:grid;gap:.45rem;padding:.55rem;align-content:start;background:#fff}.camera-gallery figcaption span{min-width:0;overflow-wrap:anywhere;color:var(--muted);font-size:.82rem}.camera-image-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:1.5rem}.camera-image-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;padding:0;background:#080e18d1}.camera-image-modal-content{position:relative;width:min(96vw,1400px);height:min(92vh,980px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:8px;background:#08101c;box-shadow:0 24px 70px #0000006b}.camera-image-modal-bar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.75rem .9rem;color:#fff;background:#0a121ef5}.camera-image-modal-bar div{min-width:0;display:grid;gap:.15rem}.camera-image-modal-bar span{color:#ffffffb8;font-size:.86rem;overflow-wrap:anywhere}.camera-image-modal-bar button{color:#fff;border-color:#ffffff59;background:#ffffff14}.camera-image-modal-content>img{width:100%;height:100%;object-fit:contain;background:#050a12}@media(max-width:860px){.camera-face-layout,.camera-assign-form{grid-template-columns:1fr}.camera-image-modal{padding:.6rem}.camera-image-modal-content{width:100%;height:94vh}}.depot-sparkline{width:132px;display:grid;gap:.15rem}.depot-sparkline svg{width:132px;height:36px;display:block}.depot-sparkline-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.depot-sparkline-line.up{stroke:#15803d}.depot-sparkline-line.down{stroke:#b91c1c}.depot-sparkline-empty{color:var(--muted);font-size:.86rem}.depot-activity{display:grid;gap:.8rem}.depot-activity-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.segmented-control{display:inline-flex;gap:.25rem;padding:.25rem;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.segmented-control button{border-color:transparent;background:transparent;white-space:nowrap}.segmented-control button.active{border-color:var(--primary);background:#fff}.depot-activity-warnings{margin:0;padding-left:1.2rem;color:#92400e;font-size:.9rem}.depot-activity-table{min-width:860px}.bank-tabs{position:sticky;top:.75rem;z-index:2;padding:.45rem;overflow-x:auto}.bank-tabs.depot-tabs{position:static;margin-bottom:.9rem}.bank-tabs button{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.bank-tabs button.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary),white 90%)}.bank-tabs span{min-width:1.25rem;border-radius:999px;padding:.05rem .35rem;color:#fff;background:var(--primary);font-size:.78rem;line-height:1.25rem;text-align:center}.bank-section-header{margin-bottom:.8rem}.bank-section-header h2,.bank-section-header p{margin:0}.bank-compact-list,.bank-review-list,.bank-transaction-list{list-style:none;display:grid;gap:.5rem;margin:0;padding:0}.bank-compact-list{margin-top:.8rem}.bank-compact-list li,.bank-review-list li,.bank-transaction-list li{border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;background:#fff}.bank-review-list li,.bank-transaction-list li{align-items:flex-start}.bank-transaction-list li{display:grid;grid-template-columns:minmax(260px,1fr) minmax(110px,auto) minmax(340px,.8fr)}.bank-transaction-sections{display:grid;gap:1rem}.bank-transaction-section{display:grid;gap:.55rem}.bank-transaction-section h3{margin:0;font-size:1rem}.bank-row-main{min-width:0;display:grid;gap:.25rem}.bank-row-main p,.bank-compact-list p{margin:0}.bank-recurring-item{display:flex;align-items:center;justify-content:space-between;gap:.8rem;border-left-width:4px}.bank-recurring-item-expense{border-left-color:#dc2626}.bank-recurring-item-income{border-left-color:#16a34a}.bank-recurring-item-expense .bank-recurring-amount{color:#b91c1c}.bank-recurring-item-income .bank-recurring-amount{color:#15803d}.bank-recurring-amount{font-weight:700;white-space:nowrap}.bank-rule-preview{display:grid;gap:.15rem;margin:.2rem 0;border:1px solid color-mix(in srgb,var(--primary),white 78%);border-radius:8px;background:color-mix(in srgb,var(--primary),white 96%);padding:.45rem .55rem}.bank-rule-preview span{color:var(--primary);font-size:.78rem;font-weight:700;text-transform:uppercase}.bank-rule-preview strong{font-size:.92rem}.bank-row-actions,.bank-row-amount{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;white-space:nowrap}.bank-row-amount{display:grid;justify-items:end;gap:.2rem}.bank-row-amount span{color:var(--muted);font-size:.82rem}.bank-dashboard-panel{display:grid;gap:.8rem}.bank-dashboard-toolbar{display:flex;gap:.7rem;flex-wrap:wrap;align-items:end}.bank-dashboard-toolbar label{display:grid;gap:.25rem;min-width:180px}.bank-dashboard-toolbar select{border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;background:#fff}.bank-dashboard-stats{margin-top:.1rem}.bank-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:.8rem}.bank-chart-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:.75rem;min-width:0}.bank-chart-card h3,.bank-chart-card p{margin:0}.bank-dashboard-transactions{border-top:1px solid var(--line);padding-top:.8rem;display:grid;gap:.65rem}.bank-chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;margin-bottom:.6rem}.bank-pie-layout{display:grid;grid-template-columns:minmax(160px,230px) minmax(0,1fr);gap:.8rem;align-items:center}.bank-pie-chart{width:100%;max-width:230px;aspect-ratio:1;display:block}.bank-pie-chart path{stroke:#fff;stroke-width:1.2;cursor:pointer;transition:opacity .15s ease,transform .15s ease;transform-origin:60px 60px}.bank-pie-chart path:not(.active){opacity:.78}.bank-pie-chart path.active{opacity:1;transform:scale(1.025)}.bank-pie-chart circle{fill:#fff;stroke:var(--line);stroke-width:1}.bank-pie-chart text{fill:var(--ink);font-size:9px;font-weight:700;pointer-events:none}.bank-pie-chart text+text{fill:var(--muted);font-size:5px;font-weight:600}.bank-chart-legend{list-style:none;display:grid;gap:.35rem;margin:0;padding:0;min-width:0}.bank-chart-legend button{width:100%;display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:.45rem;border-radius:8px;padding:.35rem .45rem;text-align:left}.bank-chart-legend li.active button{border-color:var(--primary);background:color-mix(in srgb,var(--primary),white 93%)}.bank-chart-legend span{width:10px;height:10px;border-radius:999px}.bank-chart-legend strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-chart-legend em{color:var(--muted);font-style:normal;white-space:nowrap}.bank-category-controls{display:grid;grid-template-columns:minmax(120px,1fr) minmax(110px,1fr) minmax(120px,1fr) auto;gap:.45rem;width:100%}.bank-category-controls select,.bank-category-controls input{min-width:0;border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;background:#fff}.bank-spending-legend{margin:0 0 .75rem;border:1px solid color-mix(in srgb,var(--primary),white 76%);border-radius:8px;background:color-mix(in srgb,var(--primary),white 96%);padding:.6rem .7rem}.bank-spending-legend summary{cursor:pointer;color:var(--primary);font-weight:700}.bank-spending-legend p{margin:.45rem 0 0;color:var(--muted)}.bank-spending-legend dl{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:.45rem .8rem;margin:.65rem 0 0}.bank-spending-legend div{display:grid;gap:.1rem}.bank-spending-legend dt{font-weight:700}.bank-spending-legend dd{margin:0;color:var(--muted);font-size:.9rem}.bank-transaction-details{margin-top:.25rem}.bank-transaction-details summary{cursor:pointer;color:var(--primary);font-size:.86rem}.bank-transaction-details dl{display:grid;grid-template-columns:88px minmax(0,1fr);gap:.25rem .6rem;margin:.45rem 0 0;color:var(--muted);font-size:.86rem}.bank-transaction-details dt{font-weight:700;color:var(--ink)}.bank-transaction-details dd{min-width:0;margin:0;overflow-wrap:anywhere}.bank-list-footer{margin-top:.7rem}.bank-tan-form{grid-template-columns:minmax(220px,1fr) auto}.bank-category-editor{display:grid;grid-template-columns:minmax(140px,1fr) minmax(120px,.7fr) minmax(180px,1.2fr) minmax(96px,.45fr) auto auto auto;gap:.5rem;margin-bottom:.8rem}.bank-category-editor input,.bank-category-editor select{min-width:0;border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;background:#fff}.bank-connection-editor{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.bank-inline-toggle{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.9rem;white-space:nowrap}.bank-category-list{list-style:none;display:grid;gap:.5rem;margin:0;padding:0}.bank-category-list li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:.65rem;border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;background:#fff}.bank-category-list p{margin:.2rem 0 0;color:var(--muted)}.bank-category-swatch{width:14px;height:14px;border:1px solid var(--line);border-radius:999px}.doc-head{width:100%;display:flex;justify-content:space-between;gap:.8rem}.chat-shell{height:calc(100vh - 4.4rem);min-height:620px;max-width:none;margin:0;padding:1rem;display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:1rem;overflow:hidden}.chat-sidebar,.chat-main{min-height:0;border:1px solid var(--line);border-radius:8px;background:#fffffff5}.chat-sidebar{display:flex;flex-direction:column;gap:.85rem;padding:1rem;overflow:auto}.chat-sidebar-head,.chat-role-row,.chat-side-actions,.chat-open-topics{display:flex;align-items:center;gap:.6rem}.chat-sidebar-head,.chat-role-row{justify-content:space-between}.chat-sidebar-head h1{font-size:1.35rem;margin-bottom:0}.chat-session-meta{display:grid;gap:.25rem}.chat-session-meta code{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.chat-side-actions{flex-wrap:wrap}.chat-session-list{display:grid;gap:.5rem}.chat-session-list h2{font-size:.98rem;margin:.2rem 0 0}.chat-session-list ul{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}.chat-session-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center;border:1px solid var(--line);border-radius:8px;padding:.5rem;background:#fff}.chat-session-list li.active{border-color:var(--primary)}.chat-session-list a{min-width:0;color:var(--ink);text-decoration:none;display:grid;gap:.18rem}.chat-session-list span,.chat-session-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-session-list span{font-weight:650}.chat-session-list small{color:var(--muted);font-size:.78rem}.chat-side-actions button,.chat-session-list button,.chat-enrich-control button,.chat-follow-up-bar button,.chat-composer button{border-radius:8px}.chat-enrich-control{display:grid;gap:.45rem}.chat-enrich-control input,.chat-follow-up-bar input,.chat-composer textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:.6rem .75rem;font:inherit}.chat-context-panel{display:grid;gap:.75rem}.chat-context-panel h2{font-size:.98rem;margin:.4rem 0 0}.chat-source-list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.chat-source-list li{border:1px solid var(--line);border-radius:8px;padding:.55rem .65rem;display:grid;gap:.25rem;background:#fff}.chat-source-list a{color:var(--ink);font-weight:650;text-decoration:none}.chat-source-list span{color:var(--muted);font-size:.82rem}.chat-open-topics{flex-wrap:wrap}.chat-open-topics a{color:var(--primary);font-size:.9rem}.chat-main{display:grid;grid-template-rows:minmax(0,1fr) auto auto;overflow:hidden}.chat-scroll{min-height:0;overflow-y:auto;padding:1.25rem;scroll-behavior:smooth}.chat-empty{min-height:100%;display:grid;place-content:center;gap:.35rem;text-align:center}.chat-empty h2{font-size:1.4rem}.chat-thread{list-style:none;padding:0;margin:0 auto;display:grid;gap:1rem;max-width:900px}.chat-msg{display:flex}.chat-msg-user{justify-content:flex-end}.chat-msg-assistant{justify-content:flex-start}.chat-bubble{max-width:min(78%,760px);border:1px solid var(--line);border-radius:8px;padding:.85rem .95rem;background:#fff;box-shadow:0 1px 2px #12202f0a}.chat-msg-user .chat-bubble{border-color:color-mix(in srgb,var(--primary),white 72%);background:color-mix(in srgb,var(--primary),white 94%)}.chat-role{font-size:.78rem;text-transform:uppercase;color:var(--muted)}.chat-role-row{margin-bottom:.45rem}.chat-role-row time,.chat-role-row span{color:var(--muted);font-size:.78rem}.chat-thinking{min-width:180px}.chat-thinking p{margin:.2rem 0 0}.chat-follow-up-bar{border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,320px) auto;gap:.6rem;align-items:center;padding:.75rem 1rem;background:color-mix(in srgb,var(--primary),white 94%)}.chat-follow-up-bar span{min-width:0}.chat-composer{border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:.9rem 1rem;background:#fff}.chat-composer textarea{min-height:46px;max-height:180px;resize:vertical}.chat-composer button{min-width:86px;align-self:end;background:var(--primary);border-color:var(--primary);color:#fff}.link-form input{border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem}.sky-page{max-width:1280px}.sky-night-list li{grid-template-columns:minmax(0,1fr)}.sky-points{margin-top:.75rem;display:grid;gap:.35rem}.sky-chart-toolbar{display:flex;gap:.8rem;margin-bottom:.75rem;flex-wrap:wrap}.sky-chart-toolbar .chips{align-items:center}.sky-chart-toolbar .chips button{padding:.2rem .55rem;border-radius:999px}.sky-toggle-active{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary),white 93%)}.sky-chart{margin-top:.75rem;border:1px solid var(--line);border-radius:10px;padding:.75rem;background:#fbfdff;width:100%}.sky-chart svg{width:100%;height:auto;display:block}.sky-grid-line{stroke:#12202f24;stroke-width:1}.sky-grid-label{fill:#6a7e90;font-size:14px}.mobile-location-map-panel{overflow:hidden}.mobile-location-osm{width:100%;height:min(62vh,560px);min-height:360px;overflow:hidden;border:1px solid var(--line);border-radius:10px}.mobile-location-leaflet-map{width:100%;height:100%}.mobile-location-path-summary{margin:.75rem 0 0}.mobile-location-popup{display:grid;gap:.25rem;min-width:180px}.mobile-location-popup h3{margin:0;font-size:1rem}.mobile-location-popup p{margin:0;color:var(--muted)}.sky-threshold-line{stroke:#ff7d5e;stroke-width:2;stroke-dasharray:6 6}.sky-cloud-area{fill:#ffb0482e}.sky-wind-area{fill:#60a2ff24}.sky-score-area{fill:#5082b414}.sky-score-line-guide{fill:none;stroke:#12202f2e;stroke-width:1.5}.sky-rain-band{fill:#ff4c4c1f}.sky-dot-good{fill:#f0b24f}.sky-dot-bad{fill:#6fd6c3}.sky-quality-band-good{fill:#2dae6017}.sky-quality-band-mid{fill:#e1b33217}.sky-quality-band-bad{fill:#d8515117}.sky-x-label{fill:#60788d;font-size:14px;font-weight:600}.sky-x-label-sub{fill:#8ea3ae;font-size:12px;font-weight:500}.sky-point-row{border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.link-head{width:100%;display:flex;justify-content:space-between;gap:.8rem}.link-head h3{margin:0 0 .3rem}.source-groups{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:.75rem}.source-summary{border:1px solid var(--line);border-radius:8px;background:#fff;padding:.8rem;display:grid;gap:.25rem}.source-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.source-list li{border:1px solid var(--line);border-radius:8px;padding:.75rem;background:#fff}.source-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:start}.source-meta{display:flex;gap:.55rem;flex-wrap:wrap;margin:.4rem 0 0;color:var(--muted);font-size:.88rem}.source-actions{justify-content:flex-end}.status-ok{color:var(--ok)}.status-muted{color:var(--muted)}.status-err{color:var(--err);margin-bottom:0}.markdown-preview{margin:.6rem 0 0;border:1px solid var(--line);border-radius:10px;padding:.65rem;background:#f9fbfe;max-height:280px;overflow:auto}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content p,.markdown-content ul,.markdown-content ol,.markdown-content blockquote{margin:.5rem 0}.markdown-content code{font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.86rem;background:#edf2f8;border-radius:6px;padding:.1rem .35rem}.markdown-content pre{margin:.6rem 0;background:#edf2f8;border-radius:8px;padding:.6rem .75rem;overflow:auto}.markdown-content pre code{padding:0;background:transparent}.markdown-content a{color:var(--primary)}.dream-proposals-panel{display:grid;gap:1rem}.panel-heading-row,.dream-proposal-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dream-proposal-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.9rem}.dream-proposal-card{display:grid;gap:.75rem;border:1px solid var(--border);border-radius:8px;padding:1rem;background:var(--surface)}.dream-proposal-card h3{margin:0;font-size:1rem}.dream-proposal-card p{margin:0}.dream-feedback-box{display:grid;gap:.35rem}.dream-feedback-box textarea{width:100%;resize:vertical;min-height:5.5rem}.second-mind-capture,.second-mind-entry-section{display:grid;gap:1rem}.second-mind-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.second-mind-card-list,.second-mind-item-list{display:grid;gap:.65rem;padding:0;margin:0;list-style:none}.second-mind-card-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:start;border:1px solid var(--line);border-radius:8px;padding:.75rem}.second-mind-card-list h3,.second-mind-card-list p,.second-mind-item-list h3,.second-mind-item-list p{margin:0 0 .35rem}.second-mind-card-counts{display:grid;gap:.25rem;justify-items:end;color:var(--muted);font-size:.85rem;white-space:nowrap}.second-mind-item-list li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:.75rem;align-items:start;border:1px solid var(--line);border-radius:8px;padding:.75rem}.second-mind-item-list span{border:1px solid var(--line);border-radius:999px;padding:.25rem .45rem;color:var(--primary);background:color-mix(in srgb,var(--primary),white 94%);font-size:.78rem;text-align:center}.second-mind-item-list span.accepted{color:#1f7a4d;background:color-mix(in srgb,#1f7a4d,white 92%)}.second-mind-item-list span.rejected{color:#9f2d2d;background:color-mix(in srgb,#9f2d2d,white 92%)}.second-mind-reminder-controls{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.second-mind-reminder-controls input{min-width:13rem}.second-mind-form{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:.75rem}.second-mind-form textarea{grid-column:1 / -1;width:100%;min-height:8rem;resize:vertical}.second-mind-form button[type=submit],.second-mind-labels{grid-column:1 / -1}.second-mind-labels{display:flex;flex-wrap:wrap;gap:.45rem}.second-mind-labels button{padding:.35rem .6rem;border-radius:999px;font-size:.85rem}.second-mind-labels button.active{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary),white 92%)}.second-mind-entry-list{display:grid;gap:.8rem;padding:0;margin:0;list-style:none}.second-mind-entry-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:start;border:1px solid var(--line);border-radius:8px;padding:.85rem}.second-mind-entry-list h3,.second-mind-entry-list p{margin:0 0 .4rem}.second-mind-entry-meta{color:var(--muted);font-size:.85rem}.muted-pill{background:#edf2f8;color:var(--muted)}.error-text{color:#b42318;font-size:.9rem}@media(max-width:800px){.hero{flex-direction:column}.link-form,.filters-form{grid-template-columns:1fr}.bank-command-bar,.bank-section-header,.bank-compact-list li,.bank-review-list li{align-items:stretch;flex-direction:column}.bank-transaction-list li,.bank-category-controls,.bank-category-editor,.bank-category-list li,.bank-spending-legend dl,.bank-tan-form{grid-template-columns:1fr}.bank-row-actions,.bank-row-amount{justify-content:flex-start;justify-items:start}.source-groups,.bank-chart-grid,.bank-pie-layout,.dream-proposal-list,.source-main{grid-template-columns:1fr}.panel-heading-row,.dream-proposal-card-head{align-items:stretch;flex-direction:column}.second-mind-dashboard-grid,.second-mind-form,.second-mind-card-list li,.second-mind-item-list li,.second-mind-entry-list li{grid-template-columns:1fr}.second-mind-card-counts{justify-items:start}}@media(max-width:920px){.chat-shell{height:auto;min-height:calc(100vh - 4.4rem);grid-template-columns:1fr;overflow:visible}.chat-sidebar{max-height:none}.chat-main{min-height:72vh}.chat-bubble{max-width:92%}.chat-follow-up-bar{grid-template-columns:1fr}}@media(max-width:560px){.chat-shell{padding:.65rem}.chat-scroll{padding:.85rem}.chat-composer{grid-template-columns:1fr}.chat-composer button{width:100%}.chat-bubble{max-width:100%}}
