:root{--navy:#1e2533;--bg:#e8eaee;--panel:#fff;--panel-2:#f4f6f8;--line:#1e25331a;--ink:#1e2533;--muted:#8b93a1;--accent:#00aeef;--accent-soft:#00aeef;--paper:#fff;--paper-ink:#1e2533;--paper-muted:#6b7380;--shadow:0 2px 10px #1e253312;--sans:"Inter", "Avenir Next", sans-serif;--serif:"Inter", "Avenir Next", sans-serif;--app-bg:#e8eaee;--topbar-bg:#fff;--library-bg:#1e2533;--button-radius:6px;--card-radius:8px;--panel-radius:8px;--input-radius:6px;--danger:#d4654f;--overlay:#1e25337a;--drop-fill:#00aeef24;--paper-line:#1e253314;--paper-line-strong:#1e253329;--paper-fill:#f4f6f8;--paper-fill-strong:#eef1f4;--logo-slot:#f4f6f8;color:var(--ink);font-family:var(--sans);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100dvh;min-height:100%;margin:0}body{overflow:hidden}button,input{font:inherit}button{border-radius:var(--button-radius);background:var(--accent);color:#fff;cursor:pointer;border:0;padding:.55rem .95rem}button.ghost,button.text-button,button.icon-button,.library-song-actions button{color:var(--ink);border:1px solid var(--line);background:0 0}button.ghost:hover,button:hover{filter:brightness(1.08)}.shell{flex-direction:column;height:100%;display:flex}.shell>.app,.shell>.auth-screen{flex:1;min-height:0}.app{background:var(--bg);grid-template-rows:auto 1fr;min-height:0;display:grid}.env-banner{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:#1e2533;background:#c9a227;flex:none;padding:.35rem 1rem;font-size:.75rem;font-weight:600}.topbar{border-bottom:1px solid var(--line);background:var(--topbar-bg);justify-content:space-between;align-items:center;padding:.85rem 1.25rem;display:flex}.brand span{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;font-size:.95rem;font-weight:700;display:block}.brand small{color:var(--muted);font-size:.75rem}.topbar-actions{align-items:center;gap:.6rem;display:flex}.workspace{grid-template-columns:320px 1fr;grid-template-areas:"library document";min-height:0;display:grid}.library{grid-area:library}.document{grid-area:document}.library-toggle{display:none}.library{background:var(--library-bg);color:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;grid-template-rows:auto auto 1fr;gap:.85rem;min-height:0;padding:1rem;display:grid}.library h2{color:#fff;font-size:1.05rem;font-weight:600}.library-header,.set-column-header{justify-content:space-between;gap:.75rem;display:flex}.library-header{align-items:center}.library-header h2,.set-name,.show-title{margin:0}button.add-song{flex:none;width:2.4rem;height:2.4rem;padding:0;font-size:1.45rem;font-weight:500;line-height:1}.kicker{color:var(--accent-soft);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .15rem;font-size:.72rem}.search,.library input,.modal input,.show-fields input,.set-name,.show-title{border:1px solid var(--line);background:var(--panel-2);width:100%;color:var(--ink);border-radius:var(--input-radius);padding:.7rem .8rem}.library .search,.library input{color:#fff;background:#ffffff14;border-color:#0000}.library .search::placeholder{color:#ffffff6b}.library-controls{gap:.85rem;display:grid}.library-tools{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.csv-help-toggle{border-radius:999px;place-items:center;width:1.7rem;height:1.7rem;padding:0;font-size:.78rem;font-style:italic;font-weight:700;line-height:1;display:grid}.csv-help-toggle.is-open{background:var(--accent);color:#fff;border-color:#0000}.csv-help{border-radius:var(--card-radius);color:#ffffffdb;background:#00aeef2e;border:1px solid #00aeef59;gap:.55rem;padding:.75rem .8rem;font-size:.78rem;line-height:1.45;display:grid}.csv-help p{margin:0}.csv-help pre{color:#fff;background:#00000047;border-radius:6px;margin:0;padding:.55rem .65rem;font-size:.72rem;line-height:1.5;overflow:auto}.csv-help code{color:#fff;font-size:.72rem}.library-list{flex-direction:column;gap:.55rem;min-height:0;padding-right:.2rem;display:flex;overflow:auto}.library-song{border-radius:var(--card-radius);background:#ffffff0f;border:1px solid #0000;gap:.2rem;padding:.35rem .35rem .4rem;display:grid}.library-song-handle{width:100%;color:inherit;text-align:left;background:0 0;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:.7rem;padding:.45rem .5rem;display:grid}.library-song-copy,.set-song-copy{flex-direction:column;min-width:0;display:flex}.library-song-copy strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.set-song-copy strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.library-song-copy em,.set-song-copy em{color:var(--muted);font-size:.82rem;font-style:normal}.library-song-copy em{color:#ffffff8c;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grip{background:repeating-linear-gradient(to bottom, var(--muted) 0 2px, transparent 2px 4px);opacity:.7;width:10px;height:16px;margin-top:.3rem}.duration-chip,.set-duration,.set-song-duration{font-variant-numeric:tabular-nums;color:var(--accent-soft)}.library-song-actions{gap:.35rem;padding:0 .4rem .15rem 1.7rem;display:flex}.library-song-actions button,.text-button,.icon-button{border-radius:var(--button-radius);padding:.25rem .5rem;font-size:.75rem}.library .ghost,.library .text-button,.library .icon-button,.library-song-actions button{color:#ffffffd1;border-color:#ffffff29}.library-song-actions .danger{color:#ffb4a4}.empty-library{color:#ffffff8c;padding:1.5rem .4rem}.document{grid-template-rows:auto minmax(0,1fr);gap:.55rem;min-width:0;min-height:0;padding:.55rem .85rem .7rem;display:grid;overflow:hidden}.show-header{background:var(--navy);color:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:var(--panel-radius);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title tools";align-items:center;gap:.35rem .75rem;padding:.4rem .55rem .4rem .5rem;display:grid}.show-header.is-open{grid-template-areas:"title tools""fields fields";align-items:start;padding-bottom:.65rem}.show-heading{grid-area:title;align-items:center;gap:.5rem;min-width:0;display:flex}.show-title{font-family:var(--sans);letter-spacing:-.03em;color:#fff;background:0 0;border:0;width:100%;min-width:0;padding:0;font-size:1.15rem;font-weight:600}.show-toolbar{grid-area:tools;align-items:center;gap:.65rem;display:flex}.show-meta-toggle{color:#ffffffc7;background:#ffffff14;border:1px solid #0000;align-items:center;gap:.3rem;max-width:16rem;padding:.28rem .5rem .28rem .55rem;font-size:.75rem;font-weight:500;display:inline-flex}.show-meta-toggle span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.show-meta-toggle svg{flex:none;transition:transform .16s}.show-header.is-open .show-meta-toggle svg{transform:rotate(180deg)}.show-meta-toggle:hover{filter:none;color:#fff;background:#ffffff24}.show-fields{grid-area:fields;grid-template-columns:170px minmax(180px,1fr) minmax(240px,1.4fr);gap:.45rem .75rem;display:grid}.show-fields label{letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;gap:.35rem;min-width:0;font-size:.72rem;display:grid}.show-fields input{color:#fff;background:#ffffff14;border-color:#0000}.show-fields input::placeholder{color:#ffffff61}.show-total{text-align:right;color:#fff;align-items:baseline;gap:.4rem;margin:0;display:flex}.show-total strong{font-variant-numeric:tabular-nums;font-size:1.05rem}.show-total span{color:#ffffff8c;font-size:.75rem}.show-header .logo-picker-button{width:2.15rem;height:2.15rem;font-size:.5rem}.show-header .logo-picker-remove{top:-.3rem;right:-.3rem}.set-count{color:var(--muted);font-size:.85rem}.logo-picker{flex:none;position:relative}.logo-picker-button{border-radius:var(--panel-radius);color:#ffffff8c;letter-spacing:.12em;text-transform:uppercase;background:#ffffff14;border:1px dashed #ffffff38;width:3.1rem;height:3.1rem;padding:0;font-size:.62rem;overflow:hidden}.logo-picker-button.has-logo{border-style:solid}.logo-picker-button img{object-fit:contain;background:var(--logo-slot);width:100%;height:100%;display:block}.logo-picker-remove{background:var(--navy);color:#fff;width:1.2rem;height:1.2rem;padding:0;line-height:1;position:absolute;top:-.35rem;right:-.35rem}.sets-stage{grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;gap:.7rem;min-height:0;display:grid}.sets-viewport{min-width:0;min-height:0;overflow:hidden;container-type:inline-size}.sets-track{--slide:75cqi;--gap:1rem;--step:calc(var(--slide) + var(--gap));--peek-offset:0px;--visual-index:0;gap:var(--gap);height:100%;transform:translateX(calc(var(--active-set,0) * -1 * var(--step) + var(--peek-offset) + var(--swipe,0px)));transition:none;display:flex}.sets-track.is-swiping{transition:none}.sets-viewport.is-peek-prev .sets-track{--peek-offset:calc(100cqi - var(--slide))}.sets-arrow{width:42px;height:42px;color:var(--ink);box-shadow:var(--shadow);background:#fff;border:1px solid #0000;flex-shrink:0;align-self:center;place-items:center;padding:0;display:grid}.sets-arrow:disabled{opacity:.28;cursor:default;filter:none}.sets-end{align-self:stretch;width:6.6rem;position:relative}.sets-add{z-index:1;color:var(--ink);text-align:center;box-shadow:var(--shadow);background:#fff;justify-items:center;gap:.2rem;padding:.45rem .4rem .5rem;font-size:.68rem;font-weight:600;line-height:1.2;display:grid;position:absolute;top:0;left:0;right:0}.sets-add:hover{filter:brightness(1.03)}.sets-end .sets-arrow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.set-column{--slide-index:0;background:var(--paper);min-width:0;height:100%;min-height:0;color:var(--paper-ink);border-radius:var(--panel-radius);box-shadow:var(--shadow);opacity:calc(.5 + .5 * max(0, 1 - abs(var(--slide-index) - var(--visual-index))));flex-direction:column;flex:0 0 75cqi;padding:1rem;display:flex}.sets-stage.is-single .set-column{opacity:1;flex-basis:100cqi}.set-column.is-peek{cursor:pointer}.set-column.is-over{outline:2px solid var(--accent)}.set-column-header{flex-direction:column;align-items:stretch;gap:.35rem}.set-name{color:var(--paper-ink);font-family:var(--sans);background:0 0;border:0;padding:0;font-size:1.4rem;font-weight:600}.set-meta{color:var(--paper-muted);justify-content:space-between;display:flex}.set-column .text-button{color:var(--paper-muted);border-color:var(--paper-line);align-self:start}.set-dropzone{border:1px dashed var(--paper-line-strong);border-radius:var(--card-radius);flex-direction:column;flex:1;min-height:0;margin-top:.7rem;padding:.4rem;display:flex;overflow:auto}.set-drop-tail{border-radius:12px;flex:auto;min-height:4rem}.set-drop-tail.is-over{background:var(--drop-fill)}.drop-hint{text-align:center;color:var(--paper-muted);margin:2.5rem .5rem}.set-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.set-song{background:var(--paper-fill);border-radius:14px;grid-template-columns:auto 1fr;align-items:start;display:grid}.set-song.has-options{background:var(--paper-fill-strong);outline:1px solid var(--paper-line)}.set-song-handle{width:1.7rem;color:inherit;background:0 0;border-radius:14px 0 0 14px;align-self:stretch;justify-items:center;padding:.7rem 0 0;display:grid}.set-song-body{min-width:0;padding:.25rem .3rem .35rem 0}.set-option{grid-template-columns:auto 1fr auto auto;align-items:center;gap:.5rem;padding:.35rem .2rem;display:grid}.set-option-or{text-align:center;color:var(--paper-muted);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:600}.set-index{width:1.7rem;color:var(--paper-muted);font-variant-numeric:tabular-nums}.set-song-duration{color:var(--paper-ink)}.set-song .icon-button{color:var(--paper-muted);border:0}.set-option-add{flex-wrap:wrap;align-items:center;gap:.45rem;padding:.1rem .2rem .25rem 1.9rem;display:flex}.set-option-add.is-over{background:var(--drop-fill);border-radius:10px}.set-option-add .text-button{color:var(--paper-muted);border-color:var(--paper-line)}.set-option-hint{color:var(--accent);font-size:.75rem}.option-picker{background:var(--paper);border:1px solid var(--paper-line);border-radius:12px;flex:1 0 100%;gap:.4rem;margin-top:.2rem;padding:.45rem;display:grid}.option-picker-list{flex-direction:column;gap:.2rem;max-height:10rem;display:flex;overflow:auto}.option-picker-list p{color:var(--paper-muted);margin:.4rem .2rem;font-size:.85rem}.option-picker-list button{width:100%;color:var(--paper-ink);text-align:left;background:0 0;border-radius:10px;flex-direction:column;align-items:start;gap:.1rem;padding:.4rem .5rem;display:flex}.option-picker-list button em{color:var(--paper-muted);font-size:.78rem;font-style:normal}.modal-backdrop{background:var(--overlay);z-index:20;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:var(--panel-radius);width:min(420px,100vw - 2rem);box-shadow:var(--shadow);border:1px solid #0000;gap:.75rem;padding:1.2rem;display:grid}.modal h2{font-family:var(--sans);margin:0}.modal p,.form-error{color:var(--muted);margin:.25rem 0 0}.form-error{color:var(--danger)}.modal label{color:var(--muted);gap:.35rem;font-size:.85rem;display:grid}.song-form-fields{gap:.75rem;display:grid}.add-mode{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--button-radius);grid-template-columns:1fr 1fr;gap:.2rem;padding:.22rem;display:grid}.add-mode button{color:var(--muted);background:0 0;padding:.45rem .7rem}.add-mode button:hover{filter:none;color:var(--ink)}.add-mode button.is-active{background:var(--accent);color:#fff}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.catalog-search{width:min(480px,100vw - 2rem)}.catalog-lookup{gap:.75rem;display:grid}.catalog-results{flex-direction:column;gap:.45rem;min-height:12rem;max-height:min(50vh,22rem);display:flex;overflow:auto}.catalog-results .empty-library{justify-items:start;gap:.75rem;display:grid}.catalog-hit{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr auto auto;align-items:center;gap:.7rem;padding:.55rem .6rem;display:grid}.catalog-hit-copy{flex-direction:column;min-width:0;display:flex}.catalog-hit-copy strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.catalog-hit-copy em{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-style:normal;overflow:hidden}.catalog-hit button{padding:.35rem .7rem;font-size:.8rem}.catalog-hit button:disabled{color:var(--muted);border:1px solid var(--line);cursor:default;filter:none;background:0 0}.drag-ghost{background:var(--paper);color:var(--paper-ink);border-radius:var(--card-radius);box-shadow:var(--shadow);align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.brand-button{color:inherit;text-align:left;background:0 0;border:0;border-radius:0;padding:0}.brand-button:hover{filter:none}.auth-screen{background:var(--app-bg);place-items:center;height:100%;padding:1.5rem;display:grid}.auth-loading{color:var(--muted)}.auth-card{background:var(--navy);color:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:var(--panel-radius);gap:.85rem;width:min(420px,100%);padding:1.4rem 1.3rem 1.3rem;display:grid}.auth-card .brand small{color:#ffffff8c}.auth-card .add-mode{background:#ffffff14;border-color:#0000}.auth-card .add-mode button{color:#ffffffa6}.auth-card .add-mode button.is-active{background:var(--accent);color:#fff}.auth-card label{color:#ffffffb3;gap:.35rem;font-size:.85rem;display:grid}.auth-card input{color:#fff;border-radius:var(--input-radius);background:#ffffff14;border:0;width:100%;padding:.7rem .8rem}.band-page{align-content:start;gap:1rem;min-height:0;padding:1.15rem 1.3rem 1.5rem;display:grid;overflow:auto}.band-hero{background:var(--navy);color:#fff;border-radius:var(--panel-radius);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.15rem;display:grid}.band-hero h1{letter-spacing:-.03em;margin:0;font-size:1.55rem;font-weight:600}.band-hero p{color:#ffffff8c;margin:.2rem 0 0}.band-empty{border-radius:var(--panel-radius);color:var(--muted);box-shadow:var(--shadow);background:#fff;padding:2rem 1.25rem}.band-empty p{margin:0 0 .4rem}.setlist-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem;display:grid}.setlist-card{border-radius:var(--panel-radius);box-shadow:var(--shadow);background:#fff;display:grid;overflow:hidden}.setlist-card-main{color:inherit;text-align:left;background:0 0;border-radius:0;align-items:start;gap:.3rem;padding:1rem 1rem .7rem;display:grid}.setlist-card-main:hover{filter:none}.setlist-card-main strong{font-size:1.05rem}.setlist-card-main span,.setlist-card-main em{color:var(--muted);font-size:.82rem;font-style:normal}.setlist-card-actions{gap:.4rem;padding:0 .85rem .85rem;display:flex}.print-sheet{display:none}@media print{@page{size:A4;margin:12mm}html,body,#root{color:#111;background:#fff;height:auto;min-height:0}body{overflow:visible}.app,.modal-backdrop,.drag-ghost{display:none!important}.print-sheet{display:block}.print-page{break-after:page;page-break-after:always}.print-page:last-child{break-after:auto;page-break-after:auto}.print-page-header{border-bottom:.75pt solid #111;align-items:center;gap:10pt;margin-bottom:10pt;padding-bottom:8pt;display:flex}.print-logo{object-fit:contain;width:auto;max-width:90pt;height:36pt}.print-page-show,.print-page-set{flex-direction:column;gap:1pt;min-width:0;display:flex}.print-page-show{flex:1}.print-page-show strong,.print-page-set strong{font-family:var(--sans);letter-spacing:.02em;font-size:9pt;font-weight:600}.print-page-show span,.print-page-set span,.print-page-notes,.print-empty{color:#333;font-size:8pt}.print-page-set{text-align:right;flex:none}.print-songs{margin:0;padding:0;list-style:none}.print-songs li{break-inside:avoid;page-break-inside:avoid;border-bottom:.4pt solid #ccc;padding:9pt 0}.print-choice{grid-template-columns:36pt minmax(0,1fr) auto;align-items:start;gap:10pt 12pt;display:grid}.print-songs li.print-slot-choice{background:0 0;border:0;border-left:4pt solid #888;margin:2pt 0;padding:8pt 0 8pt 16pt}.print-or{letter-spacing:.22em;text-transform:uppercase;color:#111;margin:5pt 0 6pt 36pt;font-size:9pt;font-weight:700}.print-num{font-variant-numeric:tabular-nums;color:#444;padding-top:3pt;font-size:14pt;font-weight:600;line-height:1.15}.print-song-copy{flex-direction:column;gap:1.5pt;min-width:0;display:flex}.print-song-title{font-family:var(--sans);letter-spacing:-.03em;color:#000;font-size:26pt;font-weight:700;line-height:1.05}.print-song-artist{color:#222;font-size:11pt;font-weight:400}.print-song-duration{font-variant-numeric:tabular-nums;color:#222;padding-top:6pt;font-size:12pt;font-weight:500}.print-page-notes{margin:14pt 0 0}}@media (width<=900px){body{overflow:hidden}button,a{touch-action:manipulation}input,textarea,select{font-size:16px}.topbar{padding:.5rem .7rem;padding-left:max(.7rem, env(safe-area-inset-left));padding-right:max(.7rem, env(safe-area-inset-right));gap:.5rem}.brand small,.pdf-label-rest{display:none}.library-toggle{display:inline-flex}.workspace{grid-template:"document"minmax(0,1fr)"library"/1fr}.library{height:min(42dvh,22rem);padding:.7rem .75rem;padding-bottom:max(.7rem, env(safe-area-inset-bottom));border-top:1px solid #ffffff14;display:none}.workspace.is-library-open .library{display:grid}.document{padding:.45rem .55rem .5rem;padding-left:max(.55rem, env(safe-area-inset-left));padding-right:max(.55rem, env(safe-area-inset-right));gap:.4rem}.show-header{grid-template-columns:1fr;grid-template-areas:"title""tools";gap:.35rem;padding:.4rem .5rem}.show-header.is-open{grid-template-areas:"title""tools""fields"}.show-toolbar{justify-content:space-between;min-width:0}.show-meta-toggle{max-width:11rem}.show-fields{grid-template-columns:1fr}.sets-stage{grid-template-columns:2.4rem minmax(0,1fr) 2.4rem;gap:.3rem}.sets-track,.sets-stage.is-single .set-column{--slide:100cqi}.set-column{flex-basis:100cqi;padding:.7rem}.sets-arrow{width:2.4rem;height:2.4rem}.sets-end{width:2.4rem}.sets-add{gap:0;padding:.35rem 0;font-size:0}.sets-add span{display:none}.sets-add svg{width:18px;height:18px}.sets-end .sets-arrow{top:auto;bottom:.15rem;transform:translate(-50%)}.band-page{padding:.75rem;padding-left:max(.75rem, env(safe-area-inset-left));padding-right:max(.75rem, env(safe-area-inset-right));padding-bottom:max(1rem, env(safe-area-inset-bottom))}.band-hero{grid-template-columns:auto minmax(0,1fr)}.band-hero>button{grid-column:1/-1}.setlist-grid{grid-template-columns:1fr}.auth-screen{padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));align-content:center}.auth-card{width:min(420px,100%)}.catalog-hit{grid-template-rows:auto auto;grid-template-columns:1fr auto}.catalog-hit-copy{grid-column:1/-1}.modal{width:calc(100vw - 1.25rem);max-height:min(90dvh,40rem);overflow:auto}}
