@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');

:root { --ink:#20212b; --muted:#85879a; --line:#ececf2; --violet:#7257f4; --violet-dark:#5540c7; --paper:#fbfbfd; }
*{box-sizing:border-box} body{margin:0;background:var(--paper);font-family:Inter,"Noto Sans SC",sans-serif;color:var(--ink);font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{width:240px;background:#fff;border-right:1px solid var(--line);padding:28px 15px 20px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{display:flex;align-items:center;gap:10px;color:#29293b;text-decoration:none;font-weight:700;font-size:20px;padding:0 11px;letter-spacing:-.5px}.brand-mark{width:29px;height:29px;border-radius:9px;background:linear-gradient(135deg,#8f7bff,#5b42d6);display:grid;place-items:center;color:white;font:600 15px "DM Mono";box-shadow:0 6px 12px #7257f434}.workspace-switcher{margin:30px 5px 24px;border:1px solid var(--line);border-radius:9px;height:44px;display:flex;align-items:center;gap:8px;padding:0 9px;font-size:12px;font-weight:500}.avatar,.user-avatar{border:0;background:#e7e1ff;color:#5941ca;border-radius:50%;display:grid;place-items:center;font-weight:700}.avatar{width:24px;height:24px;font-size:10px}.chevron{margin-left:auto;color:var(--muted);font-size:16px}.nav-title{font-size:10px;text-transform:uppercase;color:#a5a6b3;font-weight:700;letter-spacing:1px;margin:12px 12px 8px}.nav-title.second{margin-top:29px}.nav-item{display:flex;align-items:center;gap:12px;border-radius:8px;text-decoration:none;color:#696a7a;height:42px;padding:0 12px;margin:2px 0;font-size:13px;font-weight:500}.nav-item span{font-size:17px;width:17px;text-align:center}.nav-item.active{background:#f0edff;color:#654ee0;font-weight:600}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:17px 10px 0;color:#717386;font-size:11px}.online-dot{display:inline-block;width:7px;height:7px;background:#38b980;border-radius:50%;margin-right:7px;box-shadow:0 0 0 3px #dff7ed}main{margin-left:240px;flex:1;padding:31px 46px 45px;max-width:1570px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font:500 10px "DM Mono",monospace;letter-spacing:1.1px;color:#8c8c9d;margin:0 0 7px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:26px;letter-spacing:-.8px;margin-bottom:0}h2{font-size:17px;letter-spacing:-.35px;margin-bottom:5px}.top-actions{display:flex;align-items:center;gap:12px}.range-button,.icon-button{border:1px solid var(--line);background:white;border-radius:8px;height:36px;padding:0 12px;color:#616274;font:500 12px inherit}.icon-button{width:36px;padding:0;font-size:17px}.user-avatar{width:35px;height:35px;font-size:10px}.record-banner{background:#211d35;color:white;border-radius:12px;min-height:81px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 22px #201a3a13}.record-status{display:flex;align-items:center;gap:13px}.record-status strong{font-size:14px}.record-status p{color:#bbb6d2;font-size:12px;margin:6px 0 0}.pulse-ring{width:29px;height:29px;border-radius:50%;background:#6253b3;display:grid;place-items:center}.pulse-ring i{width:9px;height:9px;border-radius:50%;background:#9b8cff;box-shadow:0 0 0 4px #9b8cff2e}.record-controls{display:flex;align-items:center;gap:23px}.event-counter{font:600 16px "DM Mono"}.event-counter small{font:400 10px Inter;color:#aaa4c1;margin-left:3px}.stop-button{height:35px;border:0;border-radius:7px;background:#f5f3ff;color:#4f3ac6;font:600 12px inherit;padding:0 14px;cursor:pointer}.stop-button span{font-size:9px;margin-right:3px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:18px 0}.metric-grid-3{grid-template-columns:repeat(3,1fr)}.metric-card,.panel-card,.keyboard-card{background:white;border:1px solid var(--line);border-radius:11px}.metric-card{padding:17px 18px;min-height:136px;position:relative}.metric-icon{position:absolute;right:15px;top:15px;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;font-size:16px}.blue{background:#edf3ff;color:#5382e6}.purple{background:#f2efff;color:#8567e7}.orange{background:#fff3e8;color:#e88e40}.green{background:#eaf8f2;color:#45ad85}.metric-card p{font-size:12px;color:#85869a;margin:11px 0 7px}.metric-card strong{font:600 25px "DM Mono";letter-spacing:-1px}.metric-card strong em{font-size:11px;color:#8d8e9f;font-style:normal;font-family:Inter}.key-stat{padding:2px 8px;border:1px solid #dedbea;border-radius:4px;font-size:18px!important}.delta,.detail-text{font-size:11px;margin-left:7px}.positive{color:#24a873}.negative{color:#d45757}.detail-text{color:#6653d2;font-weight:600}.metric-card small{display:block;font-size:10px;color:#a2a3af;margin-top:8px}.content-grid{display:grid;grid-template-columns:minmax(550px,1.75fr) minmax(280px,.75fr);gap:18px}.keyboard-card{padding:23px 23px 0;overflow:hidden}.card-heading,.panel-heading{display:flex;justify-content:space-between;align-items:flex-start}.muted{font-size:11px;color:#9293a1;margin:0}.legend{display:flex;gap:12px;font-size:10px;color:#8f90a0;margin-top:10px}.legend i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:4px}.legend-low{background:#e7e8ed}.legend-mid{background:#b4a7ff}.legend-high{background:#6a4ce5}.keyboard-stage{min-height:280px;display:flex;justify-content:center;padding:16px 12px 20px;background:#f7f7fa;border:1px solid var(--line);border-radius:12px;margin:10px 0 4px;overflow-x:auto}#keyboardLayout{width:100%;max-width:960px;margin:0 auto}.kb-shell{display:flex;flex-direction:column;gap:10px}.kb-zone{position:relative;border:1px solid #e6e6ee;border-radius:10px;background:#fff;padding:22px 10px 10px}.kb-zone-label{position:absolute;top:6px;left:10px;font:500 9px "DM Mono";letter-spacing:.6px;color:#a0a1b3;text-transform:uppercase}.kb-fn-split{display:flex;align-items:flex-start;gap:10px}.kb-fn-inner{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.kb-fn-pad-spacer{flex:0 0 156px}.kb-fn-full .kb-fn-inner{width:100%}.kb-body{display:flex;align-items:flex-end;gap:10px;flex-wrap:nowrap}.kb-main-wrap{flex:1 1 auto;min-width:0}.kb-arrows{flex:0 0 auto;align-self:flex-end;padding-bottom:10px}.kb-numpad{flex:0 0 auto;align-self:flex-end}.kb-row{display:flex;gap:4px;min-height:36px}.kb-gap{min-width:0;height:36px}.kb-key{height:36px;min-width:28px;border-radius:5px;background:#f2f2f5;border:1px solid #e8e8ed;box-shadow:0 1px 0 #d7d7de;display:flex;align-items:center;justify-content:center;padding:0 3px;color:#787989;font:500 9px "DM Mono";position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-key[data-heat="1"]{background:#e5e0ff;border-color:#d3c9ff;color:#6d5bc4}.kb-key[data-heat="2"]{background:#b9a9ff;border-color:#a18df6;color:#342878}.kb-key[data-heat="3"]{background:#7659ed;border-color:#6245d5;color:#fff}.kb-key::after{content:attr(data-count);position:absolute;right:4px;bottom:3px;font-size:7px;opacity:.8}.layout-108 #keyboardLayout{max-width:1100px}.keyboard-heading-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.layout-picker{display:flex;align-items:center;gap:8px;font-size:11px;color:#616274}.layout-select{height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;font:500 12px inherit;color:#3f4050;min-width:148px}.keyboard-desc{margin:0 0 4px}.keyboard-card-full .keyboard-stage{height:auto;min-height:280px;margin:8px 0 18px;background:#f7f7fa}.text-button,.more-button,.full-button,.chart-tabs button{border:0;background:transparent;font:600 11px inherit;color:#654ee0;cursor:pointer}.text-button span,.full-button span,.suggestion-button span{font-size:15px;margin-left:4px}.insight-column{display:flex;flex-direction:column;gap:18px}.panel-card{padding:20px}.more-button{font-size:17px;color:#9697a6;line-height:12px}.key-list{margin:10px 0 12px}.key-item{display:grid;grid-template-columns:30px 1fr 40px;gap:10px;align-items:center;margin:10px 0}.key-cap{width:28px;height:27px;border:1px solid #dedee6;border-radius:5px;display:grid;place-items:center;color:#585968;background:#fbfbfc;font:500 11px "DM Mono"}.key-bar{height:6px;background:#efeff3;border-radius:8px;overflow:hidden}.key-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9d8cff,#6b50e6)}.key-number{font:500 10px "DM Mono";color:#77788a;text-align:right}.full-button{border-top:1px solid var(--line);padding-top:13px;width:100%;text-align:left}.suggestion{background:linear-gradient(145deg,#f1edff,#fbfaff 70%);border-color:#e4dcff}.suggestion-top{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b54d9;font-weight:700}.suggestion-icon{width:24px;height:24px;background:#dfd6ff;border-radius:7px;display:grid;place-items:center}.suggestion h3{font-size:15px;line-height:1.4;margin:13px 0 7px}.suggestion p{font-size:11px;line-height:1.65;color:#77758e;margin-bottom:11px}.suggestion-button{border:0;background:transparent;padding:0;color:#6048d0;font:600 11px inherit;cursor:pointer}.bottom-grid{display:grid;grid-template-columns:1.75fr .75fr;gap:18px;margin-top:18px}.keyboard-card-full{margin-bottom:18px}.overall-rec{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 4px}.overall-rec-main,.overall-rec-secondary{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px}.overall-rec strong{display:block;margin:8px 0 4px;font-size:13px}.overall-rec p{margin:0 0 6px;font-size:12px;color:#4e4f60}.overall-rec small{font-size:11px;line-height:1.6;color:#77788a}.activity-card{margin-top:18px}.activity-card .chart-wrap{margin:12px 2px 4px 34px;height:178px}.chart-tabs{background:#f5f4f8;border-radius:6px;padding:2px;display:flex}.chart-tabs button{padding:5px 8px;color:#9292a0}.chart-tabs .selected{background:white;color:#5e4ac6;border-radius:4px;box-shadow:0 1px 2px #2221}.chart-wrap{height:178px;position:relative;margin:18px 2px 0 34px}.chart-wrap svg{width:100%;height:148px;overflow:visible}.gridline{stroke:#eeeef2;stroke-width:1}.area{fill:url(#area)}.line{fill:none;stroke:#7257f4;stroke-width:2.5}.y-labels{position:absolute;left:-35px;top:-4px;height:148px;display:flex;flex-direction:column;justify-content:space-between;font:9px "DM Mono";color:#a0a1af}.x-labels{display:flex;justify-content:space-between;font:9px "DM Mono";color:#a0a1af;margin-top:4px}.fit-score{font:600 10px inherit;color:#27a576;background:#e8f8f0;border-radius:12px;padding:5px 8px}.switch-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.switch-visual{width:28px;height:28px;border-radius:8px;background:linear-gradient(145deg,#ffb0bc,#e26b84);box-shadow:inset 0 -5px #be3f5a,2px 3px 3px #d8d8df}.blue-switch{background:linear-gradient(145deg,#b5d7ff,#759ee8);box-shadow:inset 0 -5px #537ac8,2px 3px 3px #d8d8df}.switch-row strong{font-size:11px}.switch-row p{font-size:10px;color:#888999;margin:3px 0 0}.tag{margin-left:auto;border-radius:10px;padding:4px 6px;font-size:9px;font-weight:600;white-space:nowrap}.fast{color:#885634;background:#fff0e4}.quiet{color:#5368a9;background:#ebf0ff}dialog{border:0;border-radius:14px;padding:29px;width:min(420px,calc(100vw - 32px));box-shadow:0 20px 65px #25203944;color:var(--ink)}dialog::backdrop{background:#211d3588;backdrop-filter:blur(2px)}dialog h2{font-size:22px;margin-top:0}dialog p{color:#6f7181;font-size:13px;line-height:1.65}.dialog-close{position:absolute;right:13px;top:10px;border:0;background:transparent;color:#89899a;font-size:23px;cursor:pointer}.report-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.cancel-button,.upload-button{border:0;border-radius:7px;padding:10px 13px;font:600 12px inherit;cursor:pointer}.cancel-button{background:#f1f1f5;color:#626373}.upload-button{background:#6b50e6;color:white}.recommend-hero{display:flex;align-items:center;gap:15px;background:#f5f2ff;border-radius:9px;padding:13px}.recommend-hero strong{font-size:14px}.recommend-hero p{margin:4px 0 0;font-size:11px}.big{width:43px;height:43px}.recommend-hero + p{font-size:12px;margin:17px 0}.hidden{display:none!important}.chart-empty{margin:48px 0 0;color:#a0a1af;font-size:12px;text-align:center}.page{max-width:1180px;margin:0 auto;padding:32px 28px 48px}.header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.header h1{margin:0;font-size:26px;letter-spacing:-.8px}.empty-state{margin-top:18px}.empty-card{background:#fff;border:1px dashed #d9d9e8;border-radius:12px;padding:48px 24px;text-align:center}.empty-title{font-size:16px;font-weight:600;margin:0 0 8px;color:#3f4050}.empty-copy{margin:0;color:#85879a;font-size:13px;line-height:1.7;max-width:480px;margin-inline:auto}.switch-row.compact{border-bottom:0;padding:12px 0 0;margin-top:12px;background:#ffffff55;border-radius:8px}.bottom-grid{grid-template-columns:1.2fr .8fr}.data-warning{margin:0 0 14px;padding:10px 14px;border-radius:8px;background:#fff6e8;color:#8a5a16;font-size:12px;line-height:1.6}.ai-note{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:#ffffff88;color:#5e4ac6;font-size:12px;line-height:1.6}.ai-panel{margin-bottom:18px;background:linear-gradient(145deg,#f7f4ff,#fff 72%)}.ai-summary{margin:12px 0 8px;font-size:14px;line-height:1.75;color:#3f4050}.ai-hotzone{margin:0 0 10px;font-size:12px;line-height:1.7;color:#616274}.ai-hotzone strong{color:#4e4f60}.ai-cautions{margin:0 0 8px;padding-left:18px;color:#8a5a16;font-size:12px;line-height:1.6}.profile-badge{border-radius:999px;padding:5px 10px;font-size:10px;font-weight:700;color:#6048d0;background:#ebe4ff}.per-key-panel{margin-top:18px}.per-key-table-wrap{overflow:auto;margin-top:12px;max-height:520px;border:1px solid var(--line);border-radius:10px}.per-key-table{width:100%;border-collapse:collapse;font-size:12px}.per-key-table th,.per-key-table td{padding:11px 12px;text-align:left;border-bottom:1px solid #f1f1f5;vertical-align:top}.per-key-table th{position:sticky;top:0;background:#fafafd;color:#8c8c9d;font-size:10px;text-transform:uppercase;letter-spacing:.8px;z-index:1}.per-key-table tr:last-child td{border-bottom:0}.table-key{display:inline-grid;place-items:center;min-width:34px;height:28px;padding:0 8px;border:1px solid #dedee6;border-radius:5px;background:#fbfbfc;font:500 11px "DM Mono"}.per-key-table strong{display:block;font-size:12px;color:#3f4050}.per-key-table small{display:block;margin-top:3px;color:#9293a1;font-size:10px}.reason-cell{min-width:220px;line-height:1.65;color:#616274}.ai-mark{font-style:normal;font-size:9px;font-weight:700;color:#6048d0;background:#ebe4ff;border-radius:4px;padding:1px 5px;margin-left:4px}.table-empty{text-align:center;color:#a0a1af;padding:28px!important}.key-list-full{max-height:320px;overflow:auto;padding-right:4px}.key-item{grid-template-columns:30px 1fr 40px 28px}.key-rank{font:500 9px "DM Mono";color:#a0a1af;text-align:right}.tag.heavy{color:#6b5734;background:#fff4df}.tag.tactile{color:#5368a9;background:#ebf0ff}.tag.standard{color:#5d6070;background:#eef0f5}.timing-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:12px 0 0}.timing-stats div{background:#fafafd;border:1px solid var(--line);border-radius:8px;padding:12px}.timing-stats dt{font-size:10px;color:#8c8c9d;margin:0 0 6px;text-transform:uppercase;letter-spacing:.8px}.timing-stats dd{margin:0;font:600 18px "DM Mono";letter-spacing:-.5px}.timing-stats dd small{display:block;margin-top:4px;font:400 10px Inter;color:#9293a1}.key-intervals{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.key-intervals h3{font-size:12px;margin:0 0 10px;color:#616274}.interval-row{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:7px 0;border-bottom:1px solid #f1f1f5}.interval-row:last-child{border-bottom:0}.interval-row strong{font-family:"DM Mono",monospace;color:#4e4f60}.bar-chart{display:flex;align-items:flex-end;gap:6px;height:148px;padding-top:8px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.bar-col i{display:block;width:100%;min-height:4px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,#9d8cff,#6b50e6)}.bar-col span{font:9px "DM Mono";color:#a0a1af}
 .upload-banner{background:#211d35;color:#fff;border-radius:12px;min-height:81px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 22px #201a3a13}.upload-status{display:flex;align-items:center;gap:13px}.upload-status strong{font-size:14px}.upload-status p{color:#bbb6d2;font-size:12px;margin:6px 0 0}.upload-symbol{width:30px;height:30px;border-radius:8px;background:#6253b3;display:grid;place-items:center;font-size:19px;font-weight:600}.upload-controls{display:flex;align-items:center;gap:15px}.upload-format{color:#aaa4c1;font-size:10px}.upload-report-button{height:35px;border:0;border-radius:7px;background:#f5f3ff;color:#4f3ac6;font:600 12px inherit;padding:0 14px;cursor:pointer}.upload-report-button:disabled{opacity:.66;cursor:wait}@media(max-width:1100px){.content-grid,.bottom-grid,.overall-rec{grid-template-columns:1fr}.insight-column{display:grid;grid-template-columns:1fr 1fr}.metric-grid,.metric-grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{display:none}main{margin:0;padding:20px}.topbar{align-items:flex-start}.range-button,.icon-button{display:none}.upload-banner{align-items:flex-start;gap:15px;flex-direction:column}.upload-controls{width:100%;justify-content:space-between}.metric-grid,.metric-grid-3{gap:9px}.metric-card{padding:13px;min-height:120px}.metric-card strong{font-size:20px}.keyboard-card{padding:16px 14px 0}.legend{display:none}.keyboard-stage{min-height:220px;padding:10px 6px 14px}.kb-body{flex-wrap:wrap;align-items:flex-start}.kb-key{height:30px;min-width:22px;font-size:7px}.kb-row{min-height:30px;gap:3px}.kb-zone{padding:20px 6px 8px}.overall-rec{grid-template-columns:1fr}.keyboard-heading-actions{align-items:flex-start;flex-direction:column;gap:8px}}

.rec-group-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.rec-group{border:1px solid var(--line);border-radius:10px;background:#fafafd;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.rec-group.is-open{border-color:#d8cffc;box-shadow:0 4px 16px #6a4ce512;background:#fff}
.rec-group-head{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit;color:inherit}
.rec-group-head:hover{background:#f5f3ff}
.rec-group-main{flex:1;min-width:0}
.rec-group-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.rec-group-title .tag{margin-left:0}
.rec-group-title strong{font-size:14px;color:#3f4050}
.rec-group-title small{font-size:10px;color:#9293a1}
.rec-group-stats{margin:0 0 4px;font-size:12px;color:#616274}
.rec-group-preview{margin:0;font-size:11px;color:#9293a1;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-group-chevron{flex:0 0 auto;font-size:20px;color:#9293a1;transition:transform .15s}
.rec-group.is-open .rec-group-chevron{transform:rotate(90deg);color:#6a4ce5}
.rec-group-body{padding:0 16px 16px;border-top:1px solid #f1f1f5}
.rec-group-reason{margin:12px 0;font-size:12px;line-height:1.65;color:#616274}
.rec-key-grid{display:flex;flex-direction:column;gap:8px}
.rec-key-row{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:12px;align-items:center}
.rec-key-row .rec-key-label{display:block;min-width:0;max-width:104px;width:104px;height:28px;padding:0 6px;font-size:11px;line-height:26px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-key-bar{height:6px;background:#efeff3;border-radius:8px;overflow:hidden}
.rec-key-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9d8cff,#6b50e6)}
.rec-key-meta{font:500 10px "DM Mono";color:#77788a;white-space:nowrap}
.rec-group-list .table-empty{text-align:center;color:#a0a1af;padding:28px 0;margin:0}
.legend-low{background:#eef0f4}
.legend-mid{background:#b4a7ff}
.legend-high{background:#6a4ce5}
.heatmap-export-meta{margin:0 0 8px;font-size:12px;color:#616274;line-height:1.6}
.layout-picker.hidden{display:none!important}
.export-capture-mode .legend{margin-top:0}
.export-fab{position:fixed;right:28px;bottom:32px;z-index:40;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.export-fab.hidden{display:none!important}
.export-fab-button{height:44px;padding:0 18px;border:0;border-radius:999px;background:linear-gradient(135deg,#8f7bff,#5b42d6);color:#fff;font:600 13px inherit;cursor:pointer;box-shadow:0 10px 24px #7257f452}
.export-fab-button:disabled{opacity:.7;cursor:wait}
.export-fab-menu{display:flex;flex-direction:column;gap:6px;min-width:148px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 12px 32px #25203924}
.export-fab-menu.hidden{display:none!important}
.export-fab-menu button{border:0;background:#f7f7fb;border-radius:8px;padding:10px 12px;text-align:left;font:500 12px inherit;color:#434556;cursor:pointer}
.export-fab-menu button:hover{background:#f0edff;color:#6048d0}
.upload-banner.ai-pending{background:#4a3d1f!important}
.upload-banner.ai-error{background:#6b2e42!important}
.header-actions{display:flex;align-items:center;gap:16px}.header-actions .eyebrow{margin:0}.gallery-link{font-size:12px;font-weight:600;color:#6048d0;text-decoration:none;padding:8px 12px;border-radius:8px;background:#f0edff}.shared-reports-section{margin-top:28px;padding-top:4px}.shared-reports-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.shared-filters{display:flex;gap:8px}.shared-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.shared-report-card{border:1px solid var(--line);border-radius:11px;background:#fff;padding:17px;text-align:left;cursor:pointer;color:inherit;font:inherit;transition:border-color .15s,transform .15s}.shared-report-card:hover{border-color:#cbc0fa;transform:translateY(-1px)}.shared-report-card h3{font-size:14px;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shared-report-byline{font-size:10px;color:#9293a1;margin:0 0 13px}.shared-report-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:11px}.shared-report-metrics span{font-size:9px;color:#9293a1}.shared-report-metrics strong{display:block;margin-top:3px;font:600 14px "DM Mono";color:#424351}.shared-report-tags{display:flex;gap:6px;flex-wrap:wrap}.shared-report-tags span{font-size:9px;padding:4px 7px;border-radius:999px;background:#f1efff;color:#6048d0}.gallery-status{grid-column:1/-1;text-align:center;padding:30px;color:#9293a1;margin:0;border:1px dashed #d9d9e8;border-radius:11px}.gallery-more{display:block;margin:16px auto 0;border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 16px;color:#6048d0;font:600 11px inherit;cursor:pointer}.share-dialog{width:min(520px,calc(100vw - 32px))}.share-field{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#616274}.share-field input,.share-field select,.share-url-input{width:100%;height:38px;border:1px solid var(--line);border-radius:8px;padding:0 11px;background:#fff;color:#343543;font:500 12px inherit}.share-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.share-privacy{margin-top:14px;padding:12px 14px;border-radius:9px;background:#f7f7fb}.share-privacy strong{display:block;font-size:10px;color:#4e4f60;margin-bottom:3px}.share-privacy p{font-size:11px;margin:0 0 8px;line-height:1.5}.share-privacy p:last-child{margin-bottom:0}.share-consent{display:flex;align-items:center;gap:8px;margin-top:13px;font-size:11px;color:#616274}.share-error{margin:10px 0 0;color:#b43d52;font-size:11px}.share-url-input{margin-top:5px;background:#f7f7fb}.shared-detail-dialog{width:min(680px,calc(100vw - 32px))}.shared-detail-head{margin-bottom:16px}.shared-detail-head h2{margin-bottom:5px}.shared-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.shared-detail-stats div{padding:12px;border:1px solid var(--line);border-radius:9px}.shared-detail-stats span{display:block;font-size:9px;color:#9293a1}.shared-detail-stats strong{display:block;margin-top:5px;font:600 17px "DM Mono"}.shared-mini-heatmap{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.shared-mini-key{min-width:34px;padding:7px;border-radius:5px;background:#f0edff;color:#6048d0;font:500 9px "DM Mono";text-align:center}.shared-detail-copy{font-size:12px;line-height:1.7;color:#616274}.export-fab-menu #shareCurrentButton{background:#ebe5ff;color:#5941ca;font-weight:600}@media(max-width:900px){.shared-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.shared-reports-heading{align-items:flex-start;flex-direction:column}.shared-filters{width:100%}.shared-filters select{flex:1;min-width:0}.shared-report-grid{grid-template-columns:1fr}.share-form-row{grid-template-columns:1fr}.export-fab{right:16px;bottom:18px}}
