.pw-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.pw-card{padding:28px;text-align:left;display:grid;gap:18px;background:white;color:#19394a;border:1px solid #d4e1e8;border-radius:14px}.pw-card strong{font-size:22px}.pw-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pw-toolbar h2{margin-right:auto}.pw-layout{display:grid;grid-template-columns:minmax(240px,28%) minmax(0,1fr);gap:18px;height:calc(100vh - 220px);min-height:420px}.pw-library,.pw-day{overflow:auto;background:#fff;border:1px solid #d6e2e8;border-radius:12px;padding:12px}.pw-children{padding-left:16px}.pw-folder>button{background:transparent;color:#254353;border:0;text-align:left;padding:8px 2px;white-space:normal}.pw-file{padding:8px 5px;border-bottom:1px solid #edf1f3;cursor:grab;font-size:14px;overflow-wrap:anywhere}.pw-file:hover{background:#e9f6f4}.pw-file small{color:#667c88}.pw-block{margin-bottom:10px;border:1px solid #d9e4e9;border-radius:6px;overflow:hidden}.pw-block header{display:flex;gap:12px;padding:10px;background:#f3e8ef;align-items:center}.pw-block header span{margin-left:auto;font-size:14px}.pw-relay header{background:#edf3f6}.pw-relay-label{padding:9px 12px;color:#637d8c;font-size:14px}.pw-row{display:grid;grid-template-columns:72px 68px minmax(0,1fr) 36px 32px;align-items:center;gap:8px;padding:4px 10px;font-size:14px}.pw-row button{background:#fff0f0;color:#af2947;border:0;padding:4px}.pw-row strong{overflow-wrap:anywhere}.pw-drop{min-height:9px;background:#fafcfc}.pw-drop-last{padding:8px;text-align:center;color:#637e89;font-size:14px;border-top:1px dashed #cadbe1}.pw-over{background:#b8e6da;min-height:24px;outline:2px solid #278774}.pw-block time,.pw-row time{font-variant-numeric:tabular-nums}@media(max-width:850px){.pw-layout{grid-template-columns:220px minmax(400px,1fr);overflow:auto}.pw-toolbar h2{font-size:20px}}
#playlistsPage .pw-toolbar input{width:170px;flex:0 0 170px;margin:0}#playlistsPage .pw-toolbar h2{width:auto;flex:1;margin:0}#playlistsPage .pw-toolbar button{width:auto;padding:9px 14px;border-radius:7px;border:1px solid #cadce3;background:#fff;color:#163b4b}#playlistsPage .pw-toolbar [data-pw-save]{background:#247e70;color:#fff}#playlistsPage .pw-toolbar button:disabled{opacity:.45}#playlistsPage .pw-toolbar [role=status]{flex-basis:100%;font-size:14px;color:#5c7884}

.pw-reason{display:grid;gap:8px;margin:12px 0}.pw-reason textarea{min-height:64px;max-width:850px}.pw-history{margin-top:24px}.pw-history article{padding:16px;border-top:1px solid #d6e2e8}.pw-row[draggable="true"]{cursor:grab}

.pw-save-dialog{width:min(540px,calc(100vw - 32px))}.pw-save-dialog .pw-reason textarea{width:100%;box-sizing:border-box}.pw-save-dialog [role="status"]{color:#a52d3f}
#playlistConfirmSave:disabled{opacity:.45;cursor:not-allowed}

.pw-row.pw-selected{background:#e9f4fa;box-shadow:inset 3px 0 #267ead}.pw-row:focus-visible{outline:2px solid #267ead;outline-offset:-2px}
.pw-row .pw-audio-player{position:relative;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:#175771;cursor:pointer;touch-action:manipulation;flex:none}.pw-audio-player svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke-width:2.5}.pw-audio-track{stroke:#dbe7ee}.pw-audio-progress{stroke:#227ca7;transform:rotate(-90deg);transform-origin:18px 18px;stroke-linecap:round}.pw-audio-player span{position:relative;display:grid;place-items:center;height:100%;font-size:14px;pointer-events:none}.pw-audio-player:disabled{opacity:.35;cursor:default}.pw-audio-player:focus-visible{outline:2px solid #267ead;outline-offset:2px}

#playlistsPage .pw-day .pw-row{grid-template-columns:64px 58px minmax(0,1fr) 36px 26px}
@media(max-width:850px){#playlistsPage .pw-day .pw-row{grid-template-columns:52px 46px minmax(0,1fr) 36px 24px}}

#playlistsPage .pw-layout.pw-readonly{grid-template-columns:minmax(0,1fr)}
#playlistsPage .pw-readonly .pw-row{grid-template-columns:64px 58px minmax(0,1fr)}

.pw-row .pw-audio-player { min-height:36px !important; min-width:36px; box-sizing:border-box; line-height:1; }
.pw-audio-player .pw-audio-symbol { fill:currentColor; stroke:none; pointer-events:none; }
