.dashboard-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:14px;position:relative;z-index:5;font-family:var(--font-ui);min-height:32px}
.layout-add-trigger[aria-expanded=true]{background:var(--brand-soft,#faecea);color:#922d29}
.layout-save-status{font-size:11px;color:var(--up)}.layout-save-status:empty{display:none}
html:has(dialog.layout-picker[open]){overflow:hidden;scrollbar-gutter:stable}
.layout-picker{width:min(1060px,calc(100vw - 64px));max-width:none;height:min(760px,calc(100dvh - 64px));max-height:none;padding:0;border:1px solid #e7dad7;border-radius:14px;background:#fff;color:#292421;font-family:var(--font-ui,"Microsoft YaHei",sans-serif);box-shadow:0 24px 90px #2d181530;overflow:hidden;overscroll-behavior:contain}
.layout-picker::backdrop{background:#231b1a70;backdrop-filter:blur(3px)}
.layout-picker[open]{display:flex;flex-direction:column}
.layout-picker-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px 20px;border-bottom:1px solid #eee4e1;flex-shrink:0}
.layout-picker-eyebrow{display:block;font-size:11px;color:#a48179;letter-spacing:.12em;margin-bottom:5px}
.layout-picker-header h2{font-size:23px;line-height:1.3;font-weight:500;letter-spacing:.02em;margin:0;color:#922d29}
.layout-picker button,.layout-picker input{font:inherit}
.layout-picker-close{width:36px;height:36px;display:grid;place-items:center;line-height:1;border:0;background:transparent;border-radius:7px;color:#8b716b;font-size:28px!important;cursor:pointer}
.layout-picker-close:hover{background:#faf0ed;color:#922d29}
.layout-picker-body{display:grid;grid-template-columns:180px minmax(0,1fr);flex:1;min-height:0}
.layout-picker-categories{padding:18px 12px;background:#fcf9f8;border-right:1px solid #eee4e1;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.layout-picker-categories button{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;width:100%;padding:11px 13px;margin:0 0 5px;border:1px solid transparent;border-radius:7px;background:transparent;color:#7d6760;font-size:12px;line-height:1.4;cursor:pointer}
.layout-picker-categories button small{font-size:10px;opacity:.7}
.layout-picker-categories button:hover{background:#f6eeeb}
.layout-picker-categories button[aria-pressed=true]{background:#f8e9e6;border-color:#efd3cc;color:#9f332d;font-weight:600}
.layout-picker-main{min-width:0;min-height:0;display:flex;flex-direction:column}
.layout-picker-searchbar{display:flex;align-items:center;gap:14px;padding:18px 22px;flex-shrink:0;border-bottom:1px solid #f0e9e7}
.layout-picker-search{display:flex;align-items:center;gap:8px;border:1px solid #e4d9d5;border-radius:7px;padding:0 12px;background:#fff;flex:1;min-width:0;color:#aa8a81}
.layout-picker-search:focus-within{border-color:#b8665b;box-shadow:0 0 0 3px #a63c2d0b}
.layout-picker-search>span{font-size:24px;line-height:1}
.layout-picker-search input{min-width:0;width:100%;height:38px;border:0;outline:0;background:transparent;color:#43312c;font-size:12px}
.layout-picker-search input::placeholder{color:#ac9690}
.layout-picker-count{flex-shrink:0;font-size:11px;color:#9e8780}
.layout-picker-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(205px,max-content);align-content:start;flex:1;gap:14px;padding:22px;overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin}
.layout-picker-card{display:flex;flex-direction:column;min-height:205px;border:1px solid #e7dedb;border-radius:9px;overflow:hidden;background:#fff;min-width:0;transition:border-color .15s,box-shadow .15s}
.layout-picker-card:hover{border-color:#d4a79e;box-shadow:0 3px 12px #8a3a2c09}
.layout-picker-card:focus{outline:2px solid #b56055;outline-offset:2px}
.layout-picker-preview{height:78px;flex-shrink:0;padding:13px 16px;background:linear-gradient(135deg,#fcf6f4,#f8f4f2);border-bottom:1px solid #f1e8e5;overflow:hidden}
.layout-picker-preview i,.layout-picker-preview span{display:block;background:#e7c6bf;border-radius:3px}
.preview-metric i{height:5px;width:35%}.preview-metric strong{display:block;font:500 30px/1.2 Georgia,serif;color:#b35649}.preview-metric span{height:4px;width:63%;background:#e9dbd7}
.preview-table{display:flex;flex-direction:column;justify-content:space-between;gap:7px}.preview-table i{height:5px;background:repeating-linear-gradient(90deg,#e7d1cb 0 22%,transparent 22% 26%)}.preview-table i:first-child{background:#dbaba0;height:8px}
.preview-chart svg{height:100%;width:100%;overflow:visible}.preview-grid{fill:none;stroke:#ebded9;stroke-width:1}.preview-line{fill:none;stroke:#bd6c5e;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.preview-summary>i{height:5px;width:30%;margin-bottom:13px}.preview-summary>div{display:flex;gap:9px;height:26px}.preview-summary span{flex:1;background:linear-gradient(#d9a89c 0 5px,transparent 5px 13px,#e8d8d3 13px 17px,transparent 17px 22px,#ecdfdb 22px)}
.layout-picker-card-body{padding:13px;display:flex;flex-direction:column;flex:1;min-height:117px}
.layout-picker-card h3{font-size:12px;line-height:1.5;font-weight:600;color:#513b35;margin:0;overflow-wrap:anywhere}
.layout-picker-card p{font-size:10px;line-height:1.65;color:#9b837b;margin:6px 0 9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.layout-picker-card-bottom{margin-top:auto;padding-top:9px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.layout-picker-card-bottom>span{font-size:9px;color:#ad9289;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layout-picker-card button{border:1px solid #e6bfb6;border-radius:5px;background:#fff8f6;color:#a74035;font-size:10px;padding:5px 9px;white-space:nowrap;cursor:pointer}
.layout-picker-card button:hover:not(:disabled){background:#f7e4df;border-color:#c88f82}
.layout-picker-card button:disabled{border-color:#e7e1de;background:#f9f7f6;color:#b09c94;cursor:default}
.layout-picker-card.is-added .layout-picker-preview{opacity:.65}
.preview-dot svg,.preview-bars svg{width:100%;height:100%}.preview-dot circle,.preview-bars rect{fill:#b96859}.preview-calendar>div{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;height:100%}.preview-calendar i{background:#e8dcd6}.preview-calendar i.is-event{background:#ad5b4d}.preview-matrix>div{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;height:100%}.preview-matrix i{background:#b76759}
.layout-picker-empty{grid-column:1/-1;text-align:center;padding:70px 20px;color:#a28c84;font-size:13px}
.layout-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #eee4e1;padding:15px 28px;flex-shrink:0;background:#fff}
.layout-picker-status{font-size:11px;color:#9b7970}
.layout-picker-done{border:1px solid #922d29;border-radius:6px;background:#922d29;color:#fff;padding:9px 27px;font-size:12px!important;cursor:pointer}
.layout-picker-done:hover{background:#7e2522}
.layout-picker button:focus-visible{outline:2px solid #b56055;outline-offset:2px}
@media(max-width:950px){.layout-picker-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-picker-body{grid-template-columns:154px minmax(0,1fr)}}
@media(max-width:600px){.layout-picker{width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0;margin:0}.layout-picker-header{padding:18px 18px 15px}.layout-picker-header h2{font-size:21px}.layout-picker-eyebrow{display:none}.layout-picker-body{display:flex;flex-direction:column}.layout-picker-categories{display:flex;gap:6px;padding:11px 14px;border-right:0;border-bottom:1px solid #eee4e1;flex-shrink:0;overflow-x:auto}.layout-picker-categories button{width:auto;flex-shrink:0;gap:7px;white-space:nowrap;padding:8px 10px;margin:0}.layout-picker-categories button small{display:none}.layout-picker-main{flex:1}.layout-picker-searchbar{padding:12px 14px;gap:9px}.layout-picker-count{font-size:10px}.layout-picker-cards{padding:14px;gap:10px}.layout-picker-preview{height:66px;padding:12px}.layout-picker-card-body{padding:11px;min-height:112px}.layout-picker-card h3{font-size:11px}.layout-picker-card p{font-size:10px}.layout-picker-card-bottom>span{display:none}.layout-picker-card-bottom{justify-content:flex-end}.layout-picker-footer{padding:12px 18px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.layout-picker-status{max-width:70%;font-size:10px}.layout-picker-done{padding:9px 23px}}
.flex-dashboard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:48px;gap:12px;align-items:stretch;padding-bottom:20px}
.flex-dashboard>.dashboard-widget{position:relative;min-width:0;min-height:0;overflow:hidden;margin:0;display:flex;flex-direction:column;container-type:inline-size}
.dashboard-widget>.panel{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.dashboard-widget .panel-heading{flex-shrink:0;min-width:0}.dashboard-widget .table-scroll{min-height:0;flex:1;overflow:auto}.dashboard-widget .table-toolbar{flex-wrap:wrap;flex-shrink:0}.dashboard-widget .search-box{max-width:100%}.dashboard-widget .stat-grid{flex:1;min-height:0;overflow:auto;grid-template-columns:repeat(4,minmax(0,1fr));align-content:stretch}.dashboard-widget .stat-card{min-width:0;min-height:110px;padding:12px}.dashboard-widget .stat-value{font-size:clamp(20px,3.2cqw,28px)}
.dashboard-widget .observation-list{max-height:none;min-height:0;flex:1;overflow:auto;grid-template-columns:1fr}.dashboard-widget .chart-area{flex:1;min-height:150px;height:auto}.dashboard-widget .chart-footnote{flex-shrink:0}.dashboard-widget .chart-toolbar{flex-wrap:wrap}.dashboard-widget .panel-bottom-note{flex-shrink:0;max-height:30%;overflow:auto}
.widget-edit-controls,.widget-resize{display:none}.flex-dashboard.is-editing>.dashboard-widget{outline:1px dashed var(--muted, #777);outline-offset:2px}.flex-dashboard.is-editing .widget-edit-controls{display:flex;position:absolute;top:7px;right:8px;z-index:4;gap:3px;background:var(--paper, #fff);border:1px solid var(--line, #ddd);border-radius:6px;box-shadow:0 2px 5px color-mix(in srgb, var(--ink, #242424) 5%, transparent)}.flex-dashboard.is-editing .dashboard-widget>.panel-heading,.flex-dashboard.is-editing .dashboard-widget>.panel>.panel-heading{padding-right:76px}
.widget-edit-controls button{width:27px;height:27px;background:transparent;border:0;color:var(--muted, #777);font-size:20px;line-height:1;padding:2px;border-radius:4px}.widget-edit-controls button:hover{background:var(--soft, #f4f4f4);color:var(--navy)}.widget-move{cursor:grab;touch-action:none}.widget-hide:hover{color:var(--up)!important}
.flex-dashboard.is-editing .widget-resize{display:block;position:absolute;bottom:3px;right:3px;width:23px;height:23px;border:0;border-radius:3px;background:linear-gradient(135deg,transparent 42%,var(--muted, #777) 43%,var(--muted, #777) 48%,transparent 49%,transparent 61%,var(--muted, #777) 62%,var(--muted, #777) 67%,transparent 68%);cursor:nwse-resize;touch-action:none;z-index:4}
.flex-dashboard .dashboard-widget.is-manipulating{outline:2px solid var(--navy, #303030);box-shadow:0 8px 25px color-mix(in srgb, var(--ink, #242424) 13%, transparent);z-index:3;opacity:.9}.dashboard-dragging,.dashboard-dragging *{user-select:none!important}.dashboard-dragging .widget-move{cursor:grabbing}
@container (max-width:650px){.dashboard-widget .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-widget .panel-heading{flex-wrap:wrap}.dashboard-widget .chart-toolbar select{max-width:100%}}
@media(max-width:760px){.flex-dashboard{display:flex;flex-direction:column;gap:14px}.flex-dashboard>.dashboard-widget{order:var(--widget-order);min-height:220px;max-height:none}.flex-dashboard>.dashboard-widget[data-widget=indicators]{max-height:650px}.flex-dashboard>.dashboard-widget[data-widget=quote]{min-height:420px}.flex-dashboard>.dashboard-widget[data-widget=heatmap]{min-height:300px}.flex-dashboard .dashboard-widget .stat-grid{flex:none;grid-template-columns:repeat(2,minmax(0,1fr))}.flex-dashboard .dashboard-widget .observation-list{max-height:300px}.flex-dashboard.is-editing .widget-move,.flex-dashboard.is-editing .widget-resize{display:none}.flex-dashboard.is-editing .dashboard-widget>.panel-heading,.flex-dashboard.is-editing .dashboard-widget>.panel>.panel-heading{padding-right:46px}.dashboard-toolbar{gap:10px}.dashboard-widget .chart-area{min-height:230px}}
.flex-dashboard>.dashboard-widget[hidden],.dashboard-toolbar [hidden]{display:none!important}
