/* Solid ivory controls, matching the October 21 organ-factory concept. */
.pv-app.main{--ink:#343e40;--card:#f6f1e9;--stress:#ff7165;--energy:#29c9bf;--joy:#efb72b;--ivory:linear-gradient(145deg,#fffdf9 0%,#f5f0e8 55%,#eae3d8 100%);--raised:inset 0 1px 2px #fff, inset 0 -2px 3px #c9bba855,0 3px 5px #57321d36}
.pv-app.main .pv-mhead{padding:8px;gap:8px;z-index:14}
.pv-app.main .pv-burger,.pv-app.main .pv-metrics,.pv-app.main .ms-tab{background:var(--ivory);box-shadow:var(--raised);border:1px solid #fff9;color:var(--ink)}
.pv-app.main .pv-burger{width:42px;height:42px;border-radius:13px}
.pv-app.main .pv-metrics{flex:1;border-radius:18px;min-height:40px;padding:7px 9px}
.pv-app.main .pv-metrics.compact{gap:6px}
.pv-app.main .pv-metrics.compact .pv-cm small{font:500 9px/1.1 system-ui;color:var(--ink)}
.pv-app.main .pv-metrics.compact .pv-cover{width:21px;height:21px;font:700 16px/21px system-ui;background:linear-gradient(#ff8c7b,#fa4f42);box-shadow:inset 0 1px 2px #fff8,0 2px 3px #7c413344}
.pv-app.main .pv-mrow{gap:7px;justify-content:space-between}
.pv-app.main .pv-cm{gap:3px;white-space:nowrap}
.pv-app.main .pv-cm small{font:500 9px/1.1 system-ui;color:var(--ink)}
.pv-app.main .pv-cm b{font-size:17px;letter-spacing:-.5px}
.pv-app.main .pv-cbar{width:19px;height:6px;background:#dfd6cb;box-shadow:inset 0 1px 2px #806b5333;border-radius:6px}
.pv-app.main .pv-cbar i{box-shadow:inset 0 1px 2px #fff9;border-radius:6px;background-image:linear-gradient(#ffffff66,transparent)}
.pv-app.main .pv-mhead .pv-portrait.big{width:65px;height:65px;left:10px;top:calc(100% + 6px);box-shadow:0 0 0 3px #fffaf3,0 4px 6px #53311e55}
.pv-app.main .ms-tabs{left:86px;right:8px;top:calc(var(--top) + 3px);gap:5px}
.pv-app.main .ms-tab{height:53px;border-radius:17px;gap:4px;font-size:10px}
.pv-app.main .ms-tab svg{width:21px;height:21px}
.pv-app.main .ms-tab.on,.pv-app.main .ms-tab:first-child{color:var(--ink)}
.pv-app.main .ms-tab.on::before,.pv-app.main .ms-tab:first-child:not(:has(~ .on))::before{content:'';position:absolute;left:12%;right:12%;top:0;height:5px;border-radius:0 0 9px 9px;background:linear-gradient(#71eee1,#26bdb4);box-shadow:inset 0 1px 2px #fff8}

/* One molded console: header and keys sit over the deck's extended backing. */
.pv-app.main.side-bottom{--deck:calc(116px + max(8px,env(safe-area-inset-bottom)))}
.pv-app.main.side-bottom .pv-deck.slim{left:5px;right:5px;bottom:5px;height:var(--deck);padding:5px 8px max(5px,env(safe-area-inset-bottom));background:var(--ivory);border-radius:0 0 18px 18px;box-shadow:inset 0 -2px 3px #c9bba855,0 4px 6px #57321d36;overflow:visible}
.pv-app.main.side-bottom .pv-deck.slim::before{content:'';position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:85px;border-radius:18px 18px 0 0;background:var(--ivory);box-shadow:inset 0 1px 2px #fff,0 -2px 3px #57321d15;pointer-events:none}
.pv-app.main.side-bottom .pv-dock{left:13px;right:13px;bottom:calc(var(--deck) + 6px);height:46px}
.pv-app.main .pv-dock-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.pv-app.main .ms-clock{left:17px;bottom:calc(100% + 55px);font-size:14px;color:var(--ink);background:none;padding:0;z-index:1}
.pv-app.main .pv-dock .pv-row.gap{visibility:visible;margin:0;padding:0;border:1.5px dashed #999a97;border-radius:7px;background:#fffc;overflow:hidden}
.pv-app.main .pv-gap-add{width:100%;height:100%;font-size:23px;color:#808785;display:flex;align-items:center;justify-content:center}
.pv-app.main .pv-dock .pv-head{bottom:0;border-radius:8px;align-items:center;padding-top:8px;color:#293e42;background:var(--ivory);box-shadow:var(--raised);border:1px solid #d9cebf;overflow:hidden}
.pv-app.main .pv-dock .pv-head::before,.pv-app.main .pv-peek .pv-head::before{content:'';position:absolute;left:0;right:0;top:0;height:10px;background:linear-gradient(#ffffff66,transparent),var(--cat);box-shadow:inset 0 1px 2px #fff8;border-radius:7px 7px 0 0}
.pv-app.main .pv-dock .pv-head svg{width:19px;height:19px}
.pv-app.main .pv-dock .pv-row.now .pv-head{box-shadow:inset 0 0 12px #fff,0 0 0 2px var(--cat),0 0 14px var(--cat);filter:brightness(1.08)}
.pv-app.main .pv-row.recipe::before{display:none}
.pv-app.main .pv-row.recipe .pv-head::before{background:linear-gradient(#ffffff66,transparent),var(--rc)}
.pv-app.main .pv-peek .pv-head{position:relative;color:#293e42;background:var(--ivory)!important;padding-top:14px}
.pv-app.main .pv-vhead{color:#293e42;padding-top:17px}
.pv-app.main .pv-deck-curves{height:54px;border-radius:12px 12px 0 0;box-shadow:inset 0 2px 4px #9a836122;background:#ebe4d94d;overflow:hidden}
.pv-app.main .pv-deck-svg .line{stroke-width:2;stroke-linecap:round}
.pv-app.main .pv-deck-svg .over{stroke-width:2.2}
.pv-hours{height:17px;position:relative;color:#697071;font-size:9px;border-top:1px solid #d9d0c3;margin-top:1px;overflow:hidden}
.pv-hours span{position:absolute;transform:translateX(-50%);top:2px}.pv-hours span:first-child{transform:none}.pv-hours span:last-child{transform:translateX(-100%)}
.pv-app.main .pv-deck.slim .pv-deck-ctrl{position:relative;display:flex;align-items:center;gap:10px;height:42px;flex:none}
.pv-app.main .pv-deck.slim .pv-play,.pv-app.main .pv-deck.slim .pv-speed{position:static;bottom:auto;left:auto;background:none;box-shadow:none;border:0;color:#34474b;border-radius:8px;height:42px;padding:0 4px;min-width:0}
.pv-app.main .pv-deck.slim .pv-play{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:12px;font-weight:700;flex:0 0 88px}
.pv-app.main .pv-play b{font-size:22px;color:#20494e}
.pv-app.main .pv-deck.slim .pv-speed{font-size:13px;min-width:32px;order:3}
.pv-app.main .pv-deck.slim .pv-add{display:none}
.pv-app.main .pv-deck.slim .pv-strip{position:relative;order:2;flex:1;min-width:30px;height:36px;margin:0;background:transparent;overflow:visible;border-radius:0;touch-action:none;cursor:ew-resize}
.pv-app.main .pv-strip::before{content:'';position:absolute;left:0;right:0;top:15px;height:6px;border-radius:10px;background:#cbbdad;box-shadow:inset 0 1px 2px #8d7766,0 1px 1px #fff}
.pv-app.main .pv-strip .fill{top:15px;height:6px;background:linear-gradient(#69888b,#244b50);border-radius:8px}
.pv-app.main .pv-strip .knob{display:block;top:10px;width:16px;height:16px;background:linear-gradient(#386a70,#123b42);border:2px solid #fff9;box-shadow:0 2px 3px #5b4c3b66;border-radius:50%;transform:translateX(-50%)}
.pv-app.main .pv-strip:not(.live){opacity:.45;cursor:default}
.pv-app.main .pv-strip span{display:none}
.pv-app.main .pv-press{right:14px;bottom:calc(var(--deck) + 57px);z-index:13}
.pv-app.main .pv-pbars{background:var(--ivory);border:1px solid #fff8;border-radius:15px;padding:12px 8px 5px;gap:3px;box-shadow:var(--raised)}
.pv-app.main .pv-pbar{width:9px;height:var(--level)!important;max-height:31px;min-height:9px;border-radius:5px;background-image:linear-gradient(#ffffff55,transparent);box-shadow:inset 0 1px 2px #fff7,0 1px 2px #684d3933}
.pv-app.main .pv-ptally{margin-right:7px}.pv-app.main .pv-ptally small{font-size:8px;color:var(--ink)}.pv-app.main .pv-ptally b{font-size:17px;color:#ff6d60}
.pv-app.main .pv-ppanel{max-height:min(42dvh,340px);overflow:hidden;background:var(--ivory)}
.pv-app.main button:focus-visible,.pv-app.main [role=slider]:focus-visible{outline:2px solid #237e85;outline-offset:3px}
@media(max-width:380px){.pv-app.main .pv-mrow{gap:4px}.pv-app.main .pv-cm b{font-size:15px}.pv-app.main .pv-cbar{width:13px}.pv-app.main .pv-cm small{font-size:8px}.pv-app.main .ms-tabs{left:76px;gap:4px}.pv-app.main .ms-tab{font-size:9px;border-radius:14px}.pv-app.main .pv-mhead .pv-portrait.big{width:57px;height:57px}}
@media(max-width:350px){.pv-app.main .pv-metrics.compact .pv-cm{display:grid;grid-template-columns:auto auto;gap:1px 3px;align-items:center}.pv-app.main .pv-metrics.compact .pv-cm small{display:block;grid-column:1/-1;font-size:8px}.pv-app.main .pv-metrics.compact .pv-cm b{font-size:14px}}

/* Shallow contact shadows: the controls share the console's material. */
.pv-app.main{--ivory:linear-gradient(150deg,#fffdf9,#f3eee6);--raised:inset 0 1px 1px #fff,0 1px 2px #68432820}
.pv-app.main .pv-mhead .pv-portrait.big{box-shadow:0 0 0 3px #fffaf3,0 1px 3px #53311e20}
.pv-app.main.side-bottom .pv-deck.slim{box-shadow:0 2px 5px #68432824}
.pv-app.main.side-bottom .pv-deck.slim::before{box-shadow:inset 0 1px 1px #fff}
.pv-app.main .pv-dock .pv-row.now .pv-head{box-shadow:inset 0 0 0 1px #fff,0 0 0 2px var(--cat);filter:none}
.pv-app.main .pv-dock .pv-head{box-shadow:inset 0 -2px 0 #d5cbbd66,0 1px 2px #68432820}
.pv-app.main .pv-row.recipe .pv-head::before{background:linear-gradient(#ffffff66,transparent),var(--cat)}
.pv-app.main .pv-key-lock{position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:16px;height:11px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:#ded8cf88;color:#6e7776;box-shadow:inset 0 1px 1px #6c625b14}
.pv-app.main .pv-key-lock svg{width:9px!important;height:9px!important}
.pv-app.main .pv-dock .fixed .pv-head{padding-bottom:9px}
.pv-app.main .pv-recipe-dot{position:absolute;right:3px;top:3px;width:6px;height:6px;border-radius:50%;background:var(--rc);border:1px solid #fff;box-shadow:0 0 4px 1px var(--rc);z-index:2}
.pv-app.main .pv-dock .pv-row.pop .pv-head,.pv-app.main .pv-dock .pv-row.pv-inspected .pv-head{opacity:1;visibility:visible;outline:1.5px solid #378c89;outline-offset:-1px}

/* Magnify upward from the exact same rounded base; never hide a 300px tail. */
.pv-app.main .pv-lens-layer.x .pv-peek.anchored{background:var(--ivory);border:1px solid #d9cebf;border-radius:8px;box-sizing:border-box;box-shadow:inset 0 -2px 0 #d5cbbd66,0 1px 2px #68432820;transform-origin:50% 100%;transition:height .2s cubic-bezier(.22,.8,.24,1),width .2s cubic-bezier(.22,.8,.24,1),left .2s cubic-bezier(.22,.8,.24,1);overflow:hidden}
.pv-app.main .pv-lens-layer.x .pv-peek.anchored .pv-head{position:relative;flex-shrink:0;background:transparent!important;padding-top:8px;align-items:center;justify-content:center;border:0}
.pv-app.main .pv-lens-layer.x .pv-peek.anchored .pv-peek-info{padding:2px 1px 10px;min-height:0;flex:1;justify-content:center}
.pv-app.main .pv-lens-layer.x .pv-peek.anchored .pv-peek-more{display:none}
.pv-app.main .pv-press.dim{opacity:1;pointer-events:auto}

/* Activity details are a low, separate inspector, without a funnel or stem. */
.pv-app.main .pv-popcard.compact{overflow:visible;border-radius:16px;pointer-events:auto}
.pv-app.main .pv-popcard.compact .pv-inspector{position:relative!important;display:block!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important;margin:0;padding:12px;box-sizing:border-box;background:var(--ivory)!important;border:1px solid #fff9;border-radius:16px;box-shadow:0 2px 6px #67483322;color:var(--ink);opacity:1!important;overflow:hidden}
.pv-inspector header{display:flex;align-items:center;gap:9px}
.pv-inspector-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:9px;background:#e8e2d94d;border-top:3px solid var(--cat)}
.pv-inspector-icon svg{width:20px;height:20px}
.pv-inspector-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pv-inspector-title b{font-size:14px;line-height:1.2}.pv-inspector-title small{font-size:10px;color:#797e7a}
.pv-inspector-lock svg{width:13px;height:13px;color:#7b807d}
.pv-inspector-close{width:30px;height:30px;font-size:22px;flex:none;color:#737b79;background:transparent;border:0}
.pv-inspector-metrics{display:flex;gap:8px;margin-top:11px;padding-top:9px;border-top:1px solid #d5ccbd66}
.pv-inspector-metrics>div{flex:1;display:flex;align-items:center;justify-content:space-between;gap:3px;font-size:11px}.pv-inspector-metrics span{color:#7b807d}.pv-inspector-metrics b{font-size:13px}
.pv-inspector-metrics .stress b{color:#e27668}.pv-inspector-metrics .energy b{color:#269d95}.pv-inspector-metrics .joy b{color:#b99334}
.pv-inspector footer{display:flex;align-items:center;gap:6px;margin-top:9px;border-top:1px solid #d5ccbd66;padding-top:6px}
.pv-inspector footer button{height:30px;padding:0 9px;font-size:11px;color:#65716f;background:#e8e2d94d;border-radius:8px;border:0}
.pv-inspector footer .pv-vgrip{position:static;flex:1;height:28px;margin:0;text-align:center;color:#7c8580;cursor:grab}
.pv-inspector footer .pv-inspector-remove{margin-left:auto;color:#b66e61}
.pv-inspector-source{display:flex;align-items:center;gap:5px;font-size:10px;color:#747e78;margin:8px 0 0}.pv-inspector-source i{width:6px;height:6px;border-radius:50%;background:var(--rc);box-shadow:0 0 3px var(--rc)}

/* Fit the entire day; the curve pad supplies the larger interaction targets. */
.pv-app.main .pv-dock-scroll{overflow:hidden}
.pv-app.main .pv-dock .pv-head>svg{max-width:75%}
.pv-app.main .pv-gap-add{font-size:17px}
.pv-app.main .pv-work-head{display:flex!important;flex-direction:row!important;align-items:stretch!important;justify-content:stretch!important;padding:0!important}
.pv-app.main .pv-work-head .pv-work-main{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:11px 1px 9px;gap:1px}
.pv-app.main .pv-work-main>svg{width:16px!important;height:16px!important}
.pv-app.main .pv-work-leg{position:relative;flex:0 0 20%;min-width:0;display:flex;align-items:center;justify-content:center;border-right:1px solid #c8bfb144;padding-top:3px}
.pv-app.main .pv-work-leg:last-of-type{border-left:1px solid #c8bfb144;border-right:0}
.pv-app.main .pv-work-leg::before{content:'';position:absolute;top:0;left:0;right:0;height:10px;background:linear-gradient(#ffffff66,transparent),#9a948e}
.pv-app.main .pv-work-leg svg{width:11px!important;height:13px!important;max-width:90%}
.pv-app.main .pv-work-slots{display:flex;gap:3px;height:8px}
.pv-app.main .pv-work-slot{display:flex;align-items:center;justify-content:center;opacity:.32}
.pv-app.main .pv-work-slot.filled{opacity:1;color:#278f83}
.pv-app.main .pv-work-slot svg{width:8px!important;height:8px!important}
.pv-app.main .pv-work-head>.pv-key-lock{bottom:1px;height:8px;width:12px;background:none;box-shadow:none}
.pv-app.main .pv-work-head>.pv-key-lock svg{height:7px!important}
.pv-app.main .pv-lens-layer.x .pv-peek.pv-work-group .pv-head{padding:0!important}
.pv-app.main .pv-peek.pv-work-group.focus .pv-work-leg svg{width:15px!important;height:17px!important}
.pv-app.main .pv-peek.pv-work-group.focus .pv-work-slot svg{width:10px!important;height:10px!important}
.pv-work-details{margin-top:9px;border-top:1px solid #d5ccbd66;padding-top:8px}
.pv-work-trips,.pv-work-breaks{display:flex;gap:6px}
.pv-work-details button{display:flex;align-items:center;gap:6px;flex:1;min-width:0;text-align:left;padding:6px;border:1px solid #dbd4c755;border-radius:8px;background:#eee8df55;font-size:10px;color:#4b5957}
.pv-work-details button svg{width:15px;height:15px;flex:none}.pv-work-details button small{display:block;font-size:9px;color:#838981;margin-top:2px}
.pv-work-budget{display:block;margin:8px 0 5px;font-size:10px;color:#838981}
.work-break-choices{display:grid;gap:8px}.work-break-choices button{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px;text-align:left;border:1px solid #d9d0c3;border-radius:12px;background:#f6f1e9;color:#343e40}.work-break-choices small{font-size:11px}.work-break-choices button:disabled{opacity:.45}

/* Piano lens: one damped animation drives widths, heights and positions together. */
.pv-app.main .pv-lens-layer.piano{z-index:40}
.pv-app.main .pv-lens-layer.x .pv-peek.piano-key{transition:none;transform:none;top:auto;min-width:0;will-change:left,width,height;box-shadow:inset 0 -2px 0 #d5cbbd66,0 1px 2px #68432818}
.pv-app.main .pv-lens-layer.x .pv-peek.piano-key.focus{box-shadow:inset 0 -2px 0 #d5cbbd66,0 2px 4px #68432824}
.pv-app.main .pv-lens-layer.x .piano-key .pv-head{flex:0 0 44px;min-width:0;overflow:hidden;border-radius:7px 7px 0 0}
.pv-app.main .piano-key .pv-head>svg{max-width:75%}
.pv-app.main .piano-key.focus .pv-head>svg{width:24px;height:24px}
.pv-app.main .piano-key.focus .pv-work-main>svg{width:21px!important;height:21px!important}
.pv-app.main .pv-piano-active .pv-row.pv-slot .pv-head{opacity:0!important;visibility:hidden!important}
.pv-app.main .pv-piano-active .pv-row{transition:none!important}
.pv-piano-caption{text-align:center;padding:1px 5px 0;opacity:0;transition:opacity .15s;line-height:1.15;min-width:0}
.pv-piano-caption b{display:block;font-size:11px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pv-piano-caption small{display:block;font-size:10px;margin-top:3px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#6e7776}
.piano-key.focus .pv-piano-caption{opacity:1}
.pv-app.main .piano-key .pv-peek-info>b{display:none}
.pv-app.main .pv-lens-layer.x .piano-key .pv-peek-info{padding:2px 1px 12px}
.pv-app.main .piano-key .pv-peek-info span{font-size:11px;flex-direction:row;gap:3px}
.pv-piano-ruler{position:fixed;z-index:41;pointer-events:none;background:#f5f0e8;border-top:1px solid #d9d0c3;color:#546665;overflow:hidden;font:9px/16px system-ui;font-variant-numeric:tabular-nums}
.pv-piano-ruler[hidden]{display:none}
.pv-piano-ruler span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.pv-piano-ruler span::before{content:'';position:absolute;left:50%;top:0;height:3px;border-left:1px solid #9ea9a2}
.pv-app.main .pv-dock .pv-drop-line{top:1px;bottom:1px;border:1.5px dashed #298d87;border-radius:7px;background:#298d8715;box-sizing:border-box}
.pv-app.main .pv-dock .pv-drop-line.invalid{border-color:#c36553;background:#c3655315}
@media(prefers-reduced-motion:reduce){.pv-piano-caption{transition:none}}

/* Free time is another piano key, selected on release instead of a dwell timer. */
.pv-app.main .pv-dock .pv-row.gap{background:var(--ivory);border:1px solid #d9cebf;border-radius:8px;box-shadow:inset 0 -2px 0 #d5cbbd66,0 1px 2px #68432820}
.pv-app.main .pv-dock .pv-row.gap::before{content:'';position:absolute;top:0;left:0;right:0;height:10px;border-radius:7px 7px 0 0;background:linear-gradient(#f3f1ec,#d6d2ca);pointer-events:none}
.pv-app.main .pv-gap-add{padding-top:8px}
.pv-app.main .pv-piano-active .pv-row.gap.pv-slot{opacity:0}
.pv-app.main .piano-gap{--cat:#d6d2ca!important}
.pv-app.main .piano-gap .pv-piano-add{font:400 27px/1 system-ui;color:#7e8984}
.pv-app.main .piano-gap.focus .pv-piano-add{font-size:32px}
