/* Dashboard polish round (2026-11-02). Loaded after the inline styles on purpose. */

/* --- Workspace bar: brand + actions, with real gaps between the buttons --- */
#dash .pt-ws-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin:20px 0 14px}
#dash .pt-ws-eyebrow{font-size:12px;font-weight:700;letter-spacing:.2em;color:#6ce5e8}
#dash .pt-ws-actions{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}
#dash .pt-ws-actions .sync-status{margin:0 6px 0 0;flex:0 1 auto;font-size:12px;color:#b4c3d6}
#dash .pt-ws-actions .btn{min-height:40px;padding:8px 18px;font-size:12px}
@media(max-width:760px){#dash .pt-ws-bar{flex-direction:column;align-items:flex-start}#dash .pt-ws-actions{width:100%;justify-content:flex-start}#dash .pt-ws-actions .sync-status{flex-basis:100%;margin:0}#dash .pt-ws-actions .btn{flex:1 1 auto}}

/* --- Marketing intro now sits below the user's data --- */
.pt-hero-foot{margin:36px 0 12px;padding:22px 0 8px;border-top:1px solid rgba(56,189,248,.14)}
.pt-hero-foot h2{font-size:22px;letter-spacing:-.02em;margin:0 0 6px;color:#e2e8f0}
.pt-hero-foot p{color:#b4c3d6;font-size:13px;line-height:1.6;margin:2px 0}
.pt-hero-foot .pt-dash-oneliner{color:#b4c3d6!important;font-size:13px!important}

/* --- Top nav: room for language select, GET THE APP and the email --- */
.pulse-top-nav{gap:14px 24px}
.pulse-top-nav #navRight{gap:16px!important}
.pulse-top-nav #navRight #ptLangWrap{margin-right:0!important}
.pulse-top-nav #navRight #ptLangWrap select{min-height:38px;padding:6px 10px;min-width:96px}
.pulse-top-nav #navRight #installBtn{margin-right:0!important;white-space:nowrap}
.pulse-top-nav #navRight .pt-nav-email{font-size:12px;color:#b4c3d6;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:600px){.pulse-top-nav #navRight{gap:10px 12px!important}.pulse-top-nav #navRight .pt-nav-email{flex-basis:100%;max-width:100%}}

/* --- Tab bar: one row, scrolls sideways when it does not fit --- */
#dash .workspace-nav{display:flex!important;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity}
#dash .workspace-nav::-webkit-scrollbar{height:6px}#dash .workspace-nav::-webkit-scrollbar-thumb{background:#34475e;border-radius:6px}
#dash .workspace-nav .btn{flex:1 0 auto!important;white-space:nowrap!important;scroll-snap-align:start;padding:8px 16px;min-height:46px;font-size:12px}
@media(max-width:760px){#dash .workspace-nav .btn{font-size:12px;padding:8px 14px}}

/* --- Panel chrome: Expand + a ⋯ menu; Move and Remove live inside the menu --- */
#dash .pulse-move{position:relative;margin-bottom:4px;gap:6px;justify-content:flex-end}
#dash .pulse-move>span{display:none}
#dash .pulse-move .pulse-expand-btn,#dash .pulse-move .pt-more{order:1;background:transparent;border-color:transparent;color:#b4c3d6;min-height:32px;min-width:36px;padding:4px 10px;font-size:12px;box-shadow:none}
#dash .pulse-move .pt-more{order:2;font-size:18px;line-height:1;letter-spacing:.05em}
#dash .pulse-move .pulse-expand-btn:hover,#dash .pulse-move .pt-more:hover,#dash .pulse-move .pt-more[aria-expanded="true"]{background:rgba(34,211,238,.1);border-color:rgba(34,211,238,.4);color:#e6fbfd;transform:none}
.pt-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:40;min-width:176px;display:flex;flex-direction:column;gap:2px;padding:6px;background:#101a2d;border:1px solid #34475e;border-radius:12px;box-shadow:0 14px 34px rgba(0,0,0,.5)}
.pt-menu[hidden]{display:none}
#dash .pt-menu .btn{display:block;width:100%;text-align:left;border-color:transparent;background:transparent;color:#d6e2f0;min-height:36px;padding:8px 12px;font-size:12px;letter-spacing:.02em;transform:none;box-shadow:none;white-space:nowrap}
#dash .pt-menu .btn:hover,#dash .pt-menu .btn:focus-visible{background:rgba(34,211,238,.12);transform:none}
#dash .pt-menu .pulse-hide{margin-top:8px;border-top:1px solid #34475e;border-radius:0 0 8px 8px;color:#fda4af;padding-top:12px}
#dash .pt-menu .pulse-hide:hover,#dash .pt-menu .pulse-hide:focus-visible{background:rgba(248,113,113,.14);color:#fecdd3}
@media(any-pointer:coarse){#dash .pulse-move .pulse-expand-btn,#dash .pulse-move .pt-more{min-height:44px;min-width:44px}#dash .pt-menu .btn{min-height:44px}}
.pt-dup{display:none!important}

/* --- Confirm dialog for Remove --- */
.pt-confirm-ov{position:fixed;inset:0;z-index:10020;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(3,7,14,.72)}
.pt-confirm{width:min(420px,100%);background:#101a2d;border:1px solid #34475e;border-radius:16px;padding:22px;color:#e2e8f0;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.pt-confirm h3{font-size:17px;margin:0 0 8px}.pt-confirm p{font-size:13px;line-height:1.6;color:#b4c3d6;margin:0 0 18px}
.pt-confirm .acts{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.pt-confirm .btn{min-height:44px}.pt-confirm .btn.danger{border-color:#f87171;color:#fecaca}.pt-confirm .btn.danger:hover{background:rgba(248,113,113,.16)}

/* --- Pulse score: what moved it --- */
.pt-score-move{max-width:460px;margin:12px auto 0;text-align:left;font-size:12px;color:#c3d0e0}
.pt-score-move>p{text-align:center;margin:0 0 8px;font-size:13px}.pt-score-move>p b{font-size:16px;color:#e2e8f0;letter-spacing:.02em}
.pt-score-move ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pt-score-move li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:8px 12px;background:rgba(10,19,33,.7);border:1px solid #26364f;border-radius:10px}
.pt-score-move li span{color:#e2e8f0;font-weight:600}.pt-score-move li b{text-align:right}.pt-score-move li em{grid-column:1/-1;font-style:normal;color:#aab9cc;font-size:11px}
.pt-score-move b.up{color:#6ee7b7}.pt-score-move b.down{color:#fca5a5}.pt-score-move b.flat{color:#c3d0e0}

/* --- Contrast: small grey text brought up to WCAG AA (4.5:1) on the dark panels --- */
#dash .eyebrow,#dash small,#dash .pulse-note,#dash .l{color:#b4c3d6}
#dash [style*="color:#94a3b8"]{color:#b0bfd2!important}
#dash [style*="color:#64748b"],#dash [style*="color:#475569"],#dash [style*="color:#6b7280"],#dash [style*="color:#718096"]{color:#b0bfd2!important}

/* Sticky tab bar: anchors, focus and scrollIntoView leave room for it (--pt-nav-h is measured by polish.js). */
:root{--pt-nav-h:72px}
html{scroll-padding-top:calc(var(--pt-nav-h) + 12px)}
#dash [data-panel-key],#dash [id],#dash section,#dash .pt-ws-bar{scroll-margin-top:calc(var(--pt-nav-h) + 12px)}
#dash .workspace-nav{z-index:30}
#dash .pt-menu{z-index:60}
