:root{--ink:#0e1f35;--muted:#5d7085;--line:#dde4ec;--bg:#f8fafc;--panel:#ffffff;--accent:#213b5c;--accent-soft:#ecf1f8;--accent-hover:#dbe6f5;--steel:#6e93c0;--orange:#f0a020;--orange-text:#a85400;--danger:#b42318;--create:#15803d;--input-bg:#ecf2fa;--radius:8px;--neck-board:#efe3c9;--neck-edge:#dcc9a4;--neck-string:#bda87e;--neck-fret:#d3bd94;--neck-nut:#3b2d1c;--neck-mark:#6b5537;--neck-hover:#e7d9ba}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--steel);outline-offset:2px;border-radius:2px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:.5rem 1rem;z-index:200;border-radius:0 0 6px 0}.skip-link:focus{left:0}body{margin:0;min-height:100vh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}a{color:var(--accent);text-decoration:none}.hint a,.legal a,a:hover,li a,p a{text-decoration:underline}h1{font-size:1.5rem;margin:0 0 1rem}h2{font-size:1.1rem;margin:1.5rem 0 .5rem}.site-header{background:var(--panel);border-bottom:1px solid var(--line);padding:.4rem 1.25rem 0}.site-header .header-top{display:flex;align-items:center;gap:1.5rem;padding-bottom:.4rem;flex-wrap:wrap}.site-header .who a,.site-header .who button,.site-header nav a{white-space:nowrap}.header-band-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:1.25rem;gap:1.25rem;margin:0 -1.25rem;padding:.35rem 1.25rem;border-top:1px solid var(--line);background:#d9e5f3}.header-band-name{font-weight:700;color:var(--accent)}.site-header .brand{font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem;font-size:1.7rem}.site-header .brand:hover{text-decoration:none}.brand-logo{width:76px;height:76px;margin:-10px 0}.brand-word{white-space:nowrap;font-weight:700}.brand-domain{color:inherit}.brand-song{color:var(--accent)}.brand-docker{color:var(--orange)}.site-header nav{display:flex;gap:1rem;flex:1 1}.site-header .who{color:var(--muted);font-size:.85rem;display:flex;align-items:center;gap:.75rem}@media (max-width:700px){.site-header .header-top{gap:.35rem 1rem}.site-header .brand{flex:1 0 100%;font-size:1.4rem}.brand-logo{width:58px;height:58px;margin:-8px 0}.site-header nav{flex:0 0 auto}.site-header .who{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.header-band-row{grid-template-columns:1fr;justify-items:center;gap:.25rem}.header-band-row .tabs{flex-wrap:wrap;justify-content:center;gap:.75rem}}main{flex:1 0 auto;max-width:72rem;width:100%;margin:1.5rem auto 4rem;padding:0 1.25rem}.site-footer{max-width:72rem;margin:0 auto;padding:1.25rem;display:flex;gap:1.5rem;font-size:.85rem;color:var(--muted);border-top:1px solid var(--line)}.site-footer span{margin-left:auto}.pricing{max-width:1100px;margin:1.5rem auto 0;display:flex;flex-direction:column;align-items:center;gap:1rem}.pricing-grid{display:grid;grid-template-columns:.9fr 1.05fr 1.05fr;grid-gap:1.25rem;gap:1.25rem;align-items:stretch;width:100%}.pricing-grid>.panel{margin-bottom:0}.pricing-side{text-align:left}.price-card{display:flex;flex-direction:column}.price-card .payments-note{margin-top:auto;padding-top:1rem;text-align:left;font-size:.78rem}.pricing-side h2{margin-top:0;font-size:1.1rem}.free-card{display:flex;flex-direction:column;width:100%;text-align:center}.free-card h2{margin-top:0}.free-cta-slot,.price-card .mode-toggle{display:flex;justify-content:center;align-items:stretch;min-height:38px;margin:0 0 .85rem}.feature-list.free-limits li:before{content:"•";color:var(--muted);font-weight:400}.free-otherwise{margin:.2rem 0 .9rem;text-align:left}.plan-lifts-lead{margin:1.1rem 0 0;text-align:left;font-weight:600}.price-card .plan-lifts{margin-top:.35rem}@media (max-width:940px){.pricing-grid{grid-template-columns:1fr}}.why-list{list-style:none;padding:0;margin:1rem 0 0}.why-list li{padding:.35rem 0 .35rem 1.6rem;position:relative}.why-list li:before{content:"★";position:absolute;left:.15rem;color:var(--orange)}.price-card{width:100%;text-align:center}.price-card h2{margin-top:0}.price{font-size:3rem;font-weight:800;color:var(--accent);margin:0}.price-per{font-size:1rem;font-weight:400;color:var(--muted);margin-left:.3rem}.checkout-note p{margin:0}.checkout-steps{margin:.35rem 0;padding-left:1.2rem;text-align:left}.checkout-steps li{margin-bottom:.25rem}.price-whole-band{margin:0 0 .5rem;padding:.6rem .75rem;background:var(--accent-soft);border-radius:6px;font-size:.9rem;line-height:1.45;text-align:left}.feature-list{list-style:none;padding:0;margin:1rem 0;text-align:left}.feature-list li{padding:.3rem 0 .3rem 1.6rem;position:relative}.feature-list li:before{content:"✓";position:absolute;left:.25rem;color:#12b76a;font-weight:700}.checkout-row{margin-top:.6rem}.checkout-row button{width:100%}.checkout-row.highlight button{outline:3px solid var(--orange);outline-offset:2px}.legal{max-width:720px;margin:0 auto}.legal h2{margin-top:1.5rem}.preview-banner{background:#fef4e2;border:1px solid #f0d2a0;color:#7a5209;border-radius:var(--radius);padding:.45rem .9rem;margin-bottom:1rem;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.preview-banner .banner-cta{background:var(--orange-text);color:#fff;border-radius:var(--radius);padding:.25rem .8rem;font-weight:600;white-space:nowrap;text-decoration:none}.preview-banner .banner-cta:focus-visible,.preview-banner .banner-cta:hover{filter:brightness(.92);text-decoration:none}.welcome-banner{background:#e9f7ef;border:1px solid #a8dfc0;color:#1e6b3e;border-radius:var(--radius);padding:.9rem 1.1rem;margin-bottom:1rem;font-size:1.15rem;font-weight:600}.band-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1rem}.band-header h1{margin:0}.tabs{display:flex;gap:1rem}.tabs .tab-active{color:var(--ink);font-weight:700;border-bottom:2px solid var(--orange);text-decoration:none}.badge{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .5rem;border-radius:99px;background:var(--accent-soft);color:var(--accent)}.role-sup{font-size:.45em;margin-left:.3rem;vertical-align:super;line-height:1}.badge.invited,.badge.warn{background:#fef4e2;color:#8a5606}.badge.sysadmin{background:#fef3f2;color:var(--danger)}.col-info-sm{display:none}@media (max-width:860px){.col-hide-sm{display:none}.col-info-sm{display:table-cell}}.info-tip{position:relative;display:inline-flex;width:1.25rem;height:1.25rem;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700;cursor:help}.info-tip .tip-pop{display:none;position:absolute;right:0;top:1.55rem;z-index:20;background:var(--ink);color:#fff;border-radius:6px;padding:.45rem .65rem;font-family:inherit;font-style:normal;font-weight:400;font-size:.8rem;line-height:1.5;width:max-content;max-width:240px;text-align:left;box-shadow:0 8px 20px rgba(14,31,53,.28)}.info-tip:focus .tip-pop,.info-tip:hover .tip-pop{display:block}.est-duration .est-mark{color:var(--orange-text);font-weight:700;cursor:help}.visual-editor .ve-row{position:relative}.ve-gutter{position:absolute;left:-1.45rem;top:50%;transform:translateY(-50%);width:.85rem;height:.85rem;padding:0;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer}.ve-gutter.on,.ve-gutter:hover{border-color:var(--steel)}.ve-gutter.on{background:var(--steel)}.ve-row.ve-selected .ve-marker-chip,.ve-row.ve-selected input{outline:2px solid var(--steel);outline-offset:1px}.ve-select-bar{gap:.75rem;margin-bottom:.5rem;font-size:.85rem;color:var(--muted)}.ve-comment,.ve-select-bar{display:flex;align-items:center}.ve-comment{gap:.4rem}.ve-line-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#b3541e;background:#fdf1e7;border-radius:99px;padding:.1rem .5rem;flex-shrink:0}.ve-comment input{color:#b3541e;font-style:italic}.ve-marker{padding:.15rem 0}.ve-marker-chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:.15rem .7rem}.hp-field{display:none}.req:after{content:" *";color:var(--danger);font-weight:700}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem}.error{background:#fef3f2;border:1px solid #fecdca;color:var(--danger);border-radius:var(--radius);padding:.5rem .75rem;margin:0 0 1rem;font-size:.9rem}.hint{color:var(--muted)}.hint,label{font-size:.85rem}label{display:block;font-weight:600;margin-bottom:.2rem}input[type=date],input[type=email],input[type=file],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{width:100%;padding:.45rem .6rem;border:1px solid var(--line);border-radius:6px;font:inherit;background:var(--input-bg)}textarea{resize:vertical}.field{margin-bottom:.9rem}.field-row{display:flex;gap:.9rem}.field-row .field{flex:1 1}.field-row>button,.field-row>fieldset{margin-bottom:.9rem}@media (max-width:700px){.field-row{flex-direction:column}.field-row .field{max-width:100%!important;flex:1 1 auto!important}}button{font:inherit;font-weight:300;padding:.4rem .9rem;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}button:hover{filter:brightness(1.08)}button.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;padding:.25rem;flex:none}button.icon-btn .action-icon{margin:0}.field-inline{display:flex;align-items:center;gap:.4rem}a.linkbtn{display:inline-flex;align-items:center;justify-content:center;min-height:24px;font-weight:300;padding:.4rem .9rem;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;text-decoration:none;cursor:pointer}a.linkbtn:focus-visible,a.linkbtn:hover{filter:brightness(1.08);text-decoration:none}a.linkbtn.secondary{background:#fff;color:var(--accent);border-color:var(--accent);font-weight:600}a.linkbtn.secondary:hover{background:var(--accent-hover);box-shadow:inset 0 0 0 1px var(--accent);filter:none}button.secondary{background:#fff;color:var(--accent);border-color:var(--accent);font-weight:600}button.secondary:hover{background:var(--accent-hover);box-shadow:inset 0 0 0 1px var(--accent);filter:none}a.linkbtn.create,button.create,button.create.secondary,button.secondary.create{background:var(--create);border-color:var(--create);color:#fff;font-weight:300}.in-catalog{color:var(--muted);font-size:.85rem;white-space:nowrap}button.danger{background:#fff;color:var(--danger);border-color:#fecdca;font-weight:600}button.linklike{background:none;border:none;color:var(--accent);font-weight:400;padding:.2rem .35rem;min-width:24px;min-height:24px;cursor:pointer}.inline-form{display:inline}.auth-card{max-width:380px;margin:0 auto;width:100%}.landing{display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin-top:-1rem;width:min(1500px,calc(100vw - 3rem));position:relative;left:50%;transform:translateX(-50%)}.usp{font-size:clamp(1.7rem,3.2vw,2.7rem);font-weight:800;letter-spacing:-.02em;color:var(--accent);margin:0 0 .25rem}.usp,.usp-sub{text-align:center}.usp-sub{font-size:clamp(1rem,1.4vw,1.2rem);color:var(--muted);margin:-14px 0 1.25rem}.landing-cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin:-1rem 0 0}.landing-cta-row a{font-size:1.1rem;font-weight:600}.landing-cta-note{text-align:center;color:var(--muted);font-size:.92rem;margin:-7px 0 -12px}.three-steps-grid{display:flex;gap:1.5rem;align-items:flex-start;width:100%}.three-steps-grid img{flex:var(--w) 1 0;min-width:0;height:auto}@media (max-width:700px){.three-steps-grid{flex-direction:column;gap:2.25rem;max-width:620px;margin:0 auto}.three-steps-grid img{flex:none;width:calc(var(--w) * 100% / 996);max-width:100%}}.login-dropdown{position:relative;display:flex;align-items:center;gap:1.25rem}.login-dropdown .linklike,.site-header .who .nav-pricing{font-size:1rem;font-weight:400}.site-header .who .nav-pricing{margin-right:.5rem}.login-panel form>button:not(.btn-google){display:block;margin-left:auto;margin-right:auto;min-width:55%}.or-divider{display:flex;align-items:center;gap:.5rem;margin:.75rem 0;color:var(--muted);font-size:.75rem}.or-divider hr{flex:1 1;border:none;border-top:1px solid var(--line);margin:0}.btn-google{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:500}.btn-google:hover{background:var(--bg);border-color:var(--steel)}.login-panel{position:absolute;right:0;top:calc(100% + 10px);width:320px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 32px rgba(14,31,53,.18);padding:1rem 1.1rem;z-index:60}.auth-card .alt{margin-top:1rem;font-size:.9rem;color:var(--muted)}.auth-logo{display:block;width:180px;height:180px;margin:0 auto .75rem}.dialog-backdrop{position:fixed;inset:0;background:rgba(14,31,53,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.dialog{background:var(--panel);border-radius:var(--radius);box-shadow:0 16px 48px rgba(14,31,53,.3);padding:1.25rem 1.5rem;max-width:420px;width:100%;white-space:normal;text-align:left;font-weight:400;line-height:1.5;color:var(--ink)}.dialog h2{margin:0 0 .5rem}.dialog p{margin:0 0 1.1rem;color:var(--muted)}.dialog-buttons{display:flex;justify-content:flex-end;gap:.6rem}.admin-tabs{margin-bottom:1rem;display:flex;gap:1rem;font-size:1.05rem}.row-disabled td{opacity:.55}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}table{width:100%;border-collapse:collapse;font-size:.92rem}th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.4rem .6rem}td,th{border-bottom:1px solid var(--line)}td{padding:.5rem .6rem;vertical-align:middle}tbody tr:nth-child(2n){background:var(--bg)}td a{text-decoration:underline}td a.tag-chip,td a:has(.tag-chip){text-decoration:none}tbody tr:has(.row-link){position:relative;cursor:pointer}tbody tr:has(.row-link):hover{background:var(--accent-soft)}.row-actions{position:relative;z-index:1;width:1%}.col-right,.row-actions{text-align:right}.row-link:after{content:"";position:absolute;inset:0}tr:last-child td{border-bottom:none}.sort-link{color:var(--muted);text-decoration:none;white-space:nowrap}.sort-link:hover{color:var(--accent);text-decoration:none}.sort-link:after{content:"";display:inline-block;width:.55em;height:.85em;margin-left:.3rem;vertical-align:-.1em;opacity:.45;background:no-repeat 50%/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 0.5 6.6 4H1.4z' fill='%23667' /%3E%3Cpath d='M4 11.5 1.4 8h5.2z' fill='%23667' /%3E%3C/svg%3E")}.sort-link:focus-visible:after,.sort-link:hover:after{opacity:1}.sort-link:has(.sort-arrow):after{content:none}.sort-arrow{margin-left:.2rem;color:var(--orange-text)}.pagination{position:relative;display:flex;justify-content:space-between;align-items:center;padding-top:.75rem}.pagination-controls{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:.9rem;align-items:center;white-space:nowrap}.pagination-controls a{font-weight:700}@media (max-width:40rem){.pagination{flex-direction:column;gap:.5rem}.pagination-controls{position:static;transform:none}}.actions-cell{display:flex;gap:.5rem;align-items:center;justify-content:flex-end}.editor-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.25rem;gap:1.25rem;align-items:start}.editor-grid textarea.body{font-family:Menlo,Consolas,Courier New,monospace;font-size:.85rem;min-height:480px;white-space:pre}.pane-caption{display:block;color:var(--muted);font-size:.8rem;font-weight:400;line-height:1.2;min-height:1.2rem;margin:0 0 .5rem}.editor-pane{min-width:0}.preview-pane{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:.75rem;min-height:480px;overflow:auto}.preview-pane.chord-pro{font-family:Menlo,Consolas,Courier New,monospace;font-size:.85rem}@media (max-width:860px){.editor-grid{grid-template-columns:1fr}}.editor-toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:.75rem}.toolbar-end{margin-left:auto;display:flex;gap:.75rem}.mode-toggle{display:flex;gap:0}.mode-toggle button{border-radius:0}.mode-toggle button:first-child{border-radius:6px 0 0 6px}.mode-toggle button:last-child{border-radius:0 6px 6px 0}.import-panel textarea,.visual-editor{font-family:Menlo,Consolas,Courier New,monospace;font-size:.85rem}.visual-editor{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:.75rem .75rem .75rem 1.8rem;min-height:480px;overflow-x:auto;position:relative}.ve-ruler{position:absolute;visibility:hidden;white-space:pre;font:inherit}.ve-row{margin-bottom:.1rem}.ve-lane{position:relative;height:1.5em;cursor:copy;border-radius:4px;margin-left:1px;padding-left:.45rem}.ve-lane:hover{background:var(--accent-soft)}.ve-lane-add{position:absolute;right:0;top:0;width:24px;height:24px;padding:0;line-height:1;border:1px dashed var(--line);background:transparent;color:var(--muted);border-radius:4px;opacity:.45}.ve-lane-add:focus-visible,.ve-lane-add:hover,.ve-row:hover .ve-lane-add{opacity:1;border-style:solid;border-color:var(--accent);color:var(--accent);background:#fff}.ve-chip{position:absolute;top:0;margin-left:.45rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid #c5d3e6;border-radius:4px;padding:0 .25em;line-height:1.35;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;z-index:1}.ve-chip:active{cursor:-webkit-grabbing;cursor:grabbing}.ve-raw input,.visual-editor input{font:inherit;border:none;border-bottom:1px solid transparent;border-radius:0;padding:.1rem .45rem;width:100%;background:var(--input-bg)}.visual-editor input:focus{outline:none;border-bottom-color:var(--accent);background:#fcfdff}.ve-raw input{color:var(--muted)}.chord-picker{position:fixed;z-index:50;width:264px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(16,24,40,.12);padding:.6rem}.chord-picker.editing{width:330px}.chord-picker-row{display:flex;gap:.4rem;margin-bottom:.5rem}.chord-picker input.invalid{border-color:#fda29b}.chord-picker-shapes{display:flex;gap:.3rem;margin-bottom:.4rem;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;padding-bottom:.2rem;scrollbar-width:thin}.chord-picker-shapes .chord-shape{flex:0 0 auto;position:relative}.chord-shape.band-made{border-color:var(--orange)}.band-made-mark{position:absolute;top:1px;right:3px;color:var(--orange-text);font-weight:700;line-height:1}.chord-shape{background:#fff;border:1px solid var(--line);border-radius:6px;padding:.15rem;display:flex;flex-direction:column;align-items:center;cursor:pointer}.chord-shape:hover{border-color:var(--accent)}.chord-shape .hint{font-size:.6rem;color:#b54708}.chord-picker-options{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}.chord-option{background:var(--accent-soft);color:var(--accent);border:1px solid #c5d3e6;padding:.05rem .5rem;font-weight:600;font-size:.85rem}.danger-text{color:var(--danger)!important}.chord-picker-fix{margin-bottom:.4rem}.chord-picker-fix input{font-family:Menlo,Consolas,monospace;font-size:.8rem}.transpose-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.9rem}.transpose-bar label{margin:0;font-weight:600;font-size:.8rem;color:var(--muted)}.transpose-bar select{width:auto}.song-meta{color:var(--muted);font-size:.9rem;margin-bottom:1rem;display:flex;gap:1.25rem;flex-wrap:wrap}.tag-chip{border-radius:99px;padding:.05rem .55rem;margin-right:.3rem}.tag-chip,button.add-set-badge{display:inline-block;background:var(--accent-soft);color:var(--accent);font-size:.75rem}button.add-set-badge{border:none;border-radius:99px;font-weight:600;padding:.15rem .6rem;cursor:pointer}button.add-set-badge:hover{background:var(--accent);color:#fff;filter:none}.duration-field{border:none;margin:0 0 .9rem;padding:0;max-width:11rem}.duration-field legend{padding:0;font-weight:600;font-size:.85rem;margin-bottom:.35rem}.duration-parts{display:flex;align-items:center;gap:.3rem}.duration-part{display:flex;align-items:baseline;gap:.25rem}.duration-part input{width:3.4rem;text-align:right}.duration-part label{margin:0;font-weight:400;font-size:.75rem;color:var(--muted)}.duration-colon{color:var(--muted)}.tag-input{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--input-bg);padding:.25rem .4rem;min-height:2.35rem}.tag-chip-editable{display:inline-flex;align-items:center;gap:.25rem;margin-right:0;font-size:.85rem;padding:.1rem .3rem .1rem .6rem}.tag-remove{background:none;border:none;color:var(--accent);font-size:.8rem;line-height:1;padding:.25rem;min-width:24px;min-height:24px;cursor:pointer}.tag-remove:hover{color:var(--danger)}.tag-input .tag-text{flex:1 1;min-width:8rem;border:none;background:transparent;padding:.2rem}.tag-input .tag-text:focus{outline:none}.tag-input:focus-within{border-color:var(--steel)}.tag-field{position:relative}.tag-suggestions{position:absolute;z-index:20;left:0;right:0;margin:.15rem 0 0;padding:.2rem;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px rgb(0 0 0/12%);max-height:16rem;overflow-y:auto}.tag-suggestion{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.35rem .5rem;border-radius:4px;font-size:.85rem;cursor:pointer;min-height:24px}.tag-suggestion-active,.tag-suggestion:hover{background:var(--accent-soft);color:var(--accent)}.tag-suggestion-uses{font-size:.72rem;color:var(--muted);white-space:nowrap}.tag-suggestion-active .tag-suggestion-uses,.tag-suggestion:hover .tag-suggestion-uses{color:var(--accent)}.tag-hint{margin:.25rem 0 0;font-size:.75rem;color:var(--muted)}.check-label{display:inline-flex;align-items:center;gap:.35rem;font-weight:400;font-size:.85rem;margin:0;white-space:nowrap}.check-label input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}.logo-settings{display:flex;gap:1.25rem;align-items:flex-start;flex-wrap:wrap}.band-logo-preview{max-width:120px;max-height:120px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:.4rem}.toc-list{margin:0;padding-left:1.5rem}.toc-list li{padding:.25rem 0;font-size:1.05rem}.toc-list .hint{margin-left:.6rem}.gig-song-nav{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.gig-song-nav .gig-song-links{margin-left:auto;display:flex;gap:1rem}.tag-pie{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1.5rem}.tag-pie svg{flex:none}.tag-pie-key{flex:1 1 18rem;margin:0}.pie-swatch{display:inline-block;width:.85rem;height:.85rem;border-radius:2px;vertical-align:middle}.credits-panel{position:relative}.credits-fields{position:absolute;top:calc(100% + .4rem);left:0;z-index:40;width:22rem;max-width:calc(100vw - 2rem);padding:.9rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 32px rgba(14,31,53,.18)}.credits-fields .field:last-of-type{margin-bottom:.5rem}.credits-mine{display:block;margin:-.3rem 0 .7rem;font-size:.9rem;font-weight:300}.gig-editor{display:grid;grid-template-columns:2fr 1fr;grid-gap:1.25rem;gap:1.25rem;align-items:stretch;margin-bottom:1.25rem}.gig-editor.pending{opacity:.7}.gig-editor .autosave-status{grid-column:1/-1;margin:0;font-size:1rem}button.secondary.outlined-primary{border:2px solid var(--accent);color:var(--accent);font-weight:600}button.secondary.outlined-primary:focus-visible,button.secondary.outlined-primary:hover{background:var(--accent-soft)}.added-mark{margin-left:.35rem;color:var(--accent);font-weight:700;cursor:help}.added-mark.renamed{color:var(--orange-text)}.catalog-library-item{background:var(--input-bg)}.clear-filters{align-self:flex-end}.clear-filters:hover{text-decoration:none}.catalog-source{display:flex;gap:.35rem;margin:.5rem 0}.catalog-source button{flex:1 1;padding:.2rem .4rem;font-size:.8rem}.gig-actions,.songbook-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;margin-bottom:1rem}.gig-action-options,.gig-action-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}@media (max-width:900px){.gig-editor{grid-template-columns:1fr}.gig-catalog-col{min-height:0}.gig-catalog{position:static;overflow:visible}.gig-catalog ul{max-height:420px}}.gig-sets{display:grid;grid-gap:1rem;gap:1rem;align-content:start}.faq-item{border:1px solid var(--line);border-radius:6px;margin-bottom:.5rem;background:#fff}.faq-item>summary{cursor:pointer;padding:.75rem 1rem;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}.faq-item>summary::-webkit-details-marker{display:none}.faq-item>summary:after{content:"+";font-weight:400;font-size:1.25rem;line-height:1;color:var(--muted);flex:none}.faq-item[open]>summary:after{content:"\2212"}.faq-item>summary:hover{background:#f6f8fb}.faq-item>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.faq-answer{padding:0 1rem .75rem}.faq-answer p{margin:0 0 .6rem}.set-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));grid-gap:1rem;gap:1rem;align-items:start}@media (max-width:640px){.set-columns{grid-template-columns:1fr}}.gig-panels{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.25rem;gap:1.25rem;align-items:stretch}.gig-panels>.panel{margin-bottom:0}.gig-panels>.panel-wide{grid-column:1/-1}@media (max-width:900px){.gig-panels{grid-template-columns:1fr}}.field-row.wrap{flex-wrap:wrap}.actions-end{margin-left:auto}.gig-set{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem}.gig-set-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.budget-bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin-bottom:.6rem}.budget-fill{height:100%;background:#12b76a;transition:width .2s}.budget-fill.near{background:var(--orange)}.budget-fill.over{background:var(--danger)}.gig-set-songs{list-style:none;margin:0;padding:0;counter-reset:song}.gig-set-songs>li{border-bottom:1px solid var(--line);padding:.3rem 0}.gig-set-songs>li:last-child{border-bottom:none}.gig-set-songs>li[draggable=true]{cursor:-webkit-grab;cursor:grab}.gig-set-songs>li.empty{border:1px dashed var(--line);border-radius:6px;text-align:center;padding:.75rem}.gig-row{display:flex;align-items:center;gap:.6rem}.gig-row-title{flex:1 1;counter-increment:song}.gig-row-title:before{content:counter(song) ". ";color:var(--muted)}.gig-row-overrides{display:flex;gap:.75rem;padding:.4rem 0 .2rem 1.4rem;font-size:.8rem}.gig-row-overrides label{display:flex;align-items:center;gap:.3rem;margin:0;font-weight:600;color:var(--muted)}.gig-row-overrides input,.gig-row-overrides select{width:auto;max-width:8rem;padding:.15rem .3rem;font-size:.8rem}.gig-catalog-col{position:relative;min-height:24rem}.gig-catalog{position:absolute;inset:0;display:flex;flex-direction:column;margin-bottom:0;overflow:hidden}.gig-catalog ul{list-style:none;margin:.6rem 0 0;padding:0;flex:1 1 auto;min-height:0;overflow-y:auto}.gig-catalog li{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;border-bottom:1px solid var(--line)}.gig-catalog li span:first-child{flex:1 1}.gig-catalog li[draggable=true]{cursor:-webkit-grab;cursor:grab}.add-buttons{display:flex;gap:.35rem}.diagram-grid{display:flex;flex-wrap:wrap;gap:.75rem}.diagram-cell{text-align:center}.diagram-name{font-weight:700;color:var(--accent);font-size:.85rem}.chord-pro{font-size:1rem;--cp-chord-color:var(--accent)}.chord-pro .chord{font-weight:700;color:var(--cp-chord-color,blue)}.chord-pro .line-spacer{height:1.8rem}.chord-pro .song-line{line-height:1.25;color:var(--cp-text-color,inherit)}.chord-pro .chords-above .pair{display:inline-block;vertical-align:bottom;white-space:pre-wrap;position:relative}.chord-pro .chords-above .word{display:inline-block;vertical-align:bottom;white-space:nowrap}.chord-pro .chords-above .chord{display:block;min-height:1.2em;white-space:nowrap;padding-right:.35em}.chord-pro .chords-above .lyr{display:block;min-height:1.25em}.chord-pro .chords-above .hammer,.chord-pro .chords-above .pulloff{display:inline-block;padding:0;position:relative}.chord-pro .hammer:before{top:-9px;border:2px solid red;border-bottom:none;border-radius:70% 70% 0 0/9px 9px 0 0}.chord-pro .hammer:before,.chord-pro .pulloff:before{content:"";position:absolute;left:15%;right:15%;height:9px}.chord-pro .pulloff:before{bottom:-7px;border:2px solid red;border-top:none;border-radius:0 0 70% 70%/0 0 9px 9px}.chord-pro .chords-above .chord:has(.hammer){padding-top:9px}.chord-pro .chords-above .pair:has(.pulloff) .lyr{padding-top:7px}.chord-pro .chords-inline .chord{padding:0 .1em}.chord-pro .chorus{margin-left:2rem;color:green}.chord-pro .bridge{margin-left:4rem;color:purple}.chord-pro .section-label{font-weight:700;font-size:.9rem;margin:.5rem 0 .25rem}.chord-pro .tab-line{font-family:Menlo,Lucida Console,Consolas,Courier New,Monaco,monospace;white-space:pre;line-height:1.2rem}.chord-pro .tab-line.pre{color:darkgray}.chord-pro .grid-line{display:flex;line-height:1.6rem}.chord-pro .grid-line .grid-cell{flex:1 1;border-left:1px solid gray;padding:0 .4rem}.chord-pro .grid-line .grid-cell:last-child{border-right:1px solid gray}.chord-pro .grid-line .grid-token{font-weight:700;color:var(--cp-chord-color,var(--accent));margin-right:.5rem}.chord-pro .comment{font-size:1rem;line-height:1.2rem;color:var(--cp-comment-color,darkred);margin:1rem 0}.chord-pro .comment.comment-italic{font-style:italic}.chord-pro .comment.comment-box>span{border:1px solid var(--cp-comment-color,darkred);padding:.15rem .4rem}.chord-pro .note{font-size:.9rem;color:navy}.chord-pro .directive{color:var(--muted);font-size:.9rem}.chord-pro .page-break{border:none;border-top:1px dashed lightgray;margin:1rem 0;page-break-after:always;break-after:page}.chord-pro .column-break{break-after:column}.chord-pro .song-columns{column-gap:2rem}.chord-pro .song-image{max-width:100%}.media-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.6rem}.media-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.5rem 0;border-bottom:1px solid var(--line)}.media-row:last-child{border-bottom:none}.media-kind,.media-label{font-size:.75rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:.05rem .55rem;white-space:nowrap}.media-link{overflow-wrap:anywhere}.media-list-view audio{max-width:22rem;width:100%}.media-embed,.media-poster{width:100%;max-width:32rem;aspect-ratio:16/9;border:none;border-radius:var(--radius)}.media-poster{background-color:#000;background-size:cover;background-position:50%;color:#fff;font-size:2.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.media-poster:hover{opacity:.9}.tour-video{display:block;width:100%;margin-top:1.5rem;aspect-ratio:16/9;background:#000;border-radius:var(--radius);object-fit:contain}.action-icon{width:1em;height:1em;margin-right:.45em;vertical-align:-.125em}.tight-icon .action-icon{margin-right:.05em}@keyframes action-spin{to{transform:rotate(1turn)}}.action-icon.working{animation:action-spin .9s linear infinite;transform-origin:center}@media (prefers-reduced-motion:reduce){@keyframes action-working-fade{to{opacity:.3}}.action-icon.working{animation:action-working-fade .9s ease-in-out infinite alternate}}.settings-grid{column-width:24rem;column-gap:1.25rem}.settings-grid .panel{page-break-inside:avoid;break-inside:avoid;margin:0 0 1.25rem}.help-layout{display:grid;grid-template-columns:13rem minmax(0,1fr);grid-gap:1.5rem;gap:1.5rem;align-items:start}.help-nav{position:-webkit-sticky;position:sticky;top:1rem;display:flex;flex-direction:column;gap:.25rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem}.help-nav a{padding:.45rem .6rem;border-radius:6px;font-size:.9rem;font-weight:600}.help-nav a:focus-visible,.help-nav a:hover{background:var(--accent-soft);text-decoration:none}.help-section h2{margin-top:0}.help-section h2,.help-section[id]{scroll-margin-top:1rem}.help-shot{display:block;width:100%;max-width:42rem;height:auto;margin:.75rem auto 1rem;border:1px solid var(--line);border-radius:6px;box-shadow:0 2px 10px rgba(14,31,53,.08)}.help-shot-wide{max-width:100%}.help-shot-pair{display:flex;gap:1rem}.help-shot-pair .help-shot{height:100px;width:auto;margin:.75rem 0 .25rem}@media (max-width:800px){.help-layout{grid-template-columns:1fr}.help-nav{position:static;flex-direction:row;flex-wrap:wrap}}.signup-intent{border:none;padding:0;margin:0 0 .9rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.signup-intent legend{padding:0;margin-bottom:.35rem;font-size:.9rem;color:var(--muted)}.gig-actions>.gig-action-row{align-self:stretch}.gig-action-row .action-end{margin-left:auto}.gig-action-row>a,.gig-action-row>form,.gig-action-row>span{display:inline-flex;align-items:stretch}.gig-action-row .linkbtn,.gig-action-row button{min-height:2.6rem;display:inline-flex;align-items:center;justify-content:center}.chord-chart-controls{margin:1.25rem 0 1.5rem}.chord-chart-controls nav{display:flex;gap:.4rem}.chord-chart-controls nav a{padding:.3rem .8rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none;font-weight:600;font-size:.9rem}.chord-chart-controls nav a.current{background:var(--accent);border-color:var(--accent);color:#fff}.chord-chart-controls{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}.chord-chart-controls .hint{margin:0;flex:1 1 20rem}.chord-chart-pdf{display:inline-flex;align-items:baseline;gap:.45rem;padding:.3rem .8rem;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:#fff;text-decoration:none;font-weight:600;font-size:.9rem;white-space:nowrap}.chord-chart-pdf .hint{flex:none;color:#dbe6f4;font-weight:400}.chord-chart-pdf:hover{filter:brightness(1.08);color:#fff}.chord-chart-note{font-size:.75rem;line-height:1.2}.chord-chart-missing{max-width:40rem}.chord-chart-group{margin-bottom:1.4rem;page-break-inside:avoid;break-inside:avoid}.chord-chart-group h2{margin:0 0 .6rem;font-size:1.15rem;border-bottom:1px solid var(--line);padding-bottom:.3rem}.chord-chart-also{margin-left:.5rem;font-weight:400;font-size:.85rem;color:var(--muted)}.chord-chart-group ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--chart-cols,5),minmax(0,1fr));grid-gap:.5rem;gap:.5rem;max-width:58rem}@media (max-width:1000px){.chord-chart-group ul{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:780px){.chord-chart-group ul{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:540px){.chord-chart-group ul{grid-template-columns:repeat(2,minmax(0,1fr))}}.chord-chart-group li{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem .25rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.chord-chart-group li.none{background:transparent;border-style:dashed;justify-content:center}.chord-chart-name{font-weight:700;font-size:1rem}.chordagent-page{max-width:72rem;margin:0 auto;padding:0 1.25rem 3rem}.chordagent-title{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.chordagent-head h1{margin:0;font-size:2.1rem}.chordagent-head h1,.chordagent-home{display:flex;align-items:center;gap:.6rem}.chordagent-home{color:inherit}.chordagent-home,.chordagent-home:hover{text-decoration:none}.chordagent-logo{width:76px;height:76px;margin:-10px 0}.chordagent-charttitle{margin:.6rem 0 0;font-size:1.5rem}.chordagent-mast{margin:0;font-size:2.1rem;font-weight:700;line-height:1.1;display:flex;align-items:center;gap:.6rem}.chordagent-tagline{margin:.35rem 0 0;font-size:1.05rem}.chordagent-from{margin:0;color:var(--muted);font-size:.95rem}.chordagent-from a{color:inherit;text-decoration:underline;text-underline-offset:2px}.chordagent-cta{display:block;margin:2.5rem auto 0;padding-top:1.5rem;border-top:1px solid var(--line);max-width:42rem;text-align:center;font-size:1.2rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.chordagent-cta:hover{color:var(--accent)}.charts-index-grid{columns:18rem;column-gap:1.25rem;width:100%;max-width:64rem;margin:0 auto}.charts-index-group{page-break-inside:avoid;break-inside:avoid;margin:0 0 1.25rem}.charts-index-group h2{font-size:1.05rem;margin:0 0 .4rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)}.charts-index-list{list-style:none;padding:0;margin:0}.charts-index-list li{padding:.35rem 0}.charts-index-list a{font-weight:600}.chordagent-head{margin-bottom:1.5rem}.tip-jar{margin-top:1.1rem;padding-top:1.25rem;border-top:1px solid var(--line);max-width:15rem;text-align:center}.tip-jar h2{margin:0 0 .5rem;font-size:1rem}.tip-jar-icon{width:7.5rem;height:8rem;color:var(--accent)}.tip-jar-links{display:flex;gap:.5rem;justify-content:center;margin-top:.75rem}.tip-jar-links a{display:inline-flex;align-items:center;font-size:.85rem;padding:.35rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--accent);text-decoration:none;font-weight:600}.tip-jar-links a:hover{border-color:var(--accent);text-decoration:underline}.tip-jar-credit{margin:.4rem 0 0;font-size:.85rem;font-style:italic;color:var(--muted)}@keyframes tip-coin-drop{0%{transform:translateY(-14px);opacity:0}60%{transform:translateY(0);opacity:1}to{transform:translateY(0);opacity:1}}.tip-coin{animation:tip-coin-drop 1.1s ease-out both}@media (prefers-reduced-motion:reduce){.tip-coin{animation:none}}.maker-chart-link{display:inline-flex;align-items:center;padding:.4rem .9rem;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:#fff;font-weight:400;white-space:nowrap;text-decoration:none}.maker-chart-link,.maker-chart-note{align-self:flex-end;margin-bottom:.9rem}.maker-chart-note{max-width:22rem;padding:.4rem 0;text-align:right}.maker-custom-tuning{max-width:15rem;margin:1.1rem 0 0;text-align:center}.chord-playback{max-width:15rem;margin:.8rem 0 0;display:flex;justify-content:center;gap:.5rem}.chord-playback button{font-size:.85rem;padding:.3rem .7rem;white-space:nowrap}.chord-volume{max-width:15rem;margin:.5rem 0 0;display:flex;align-items:center;gap:.5rem;font-size:.85rem}.chord-volume input[type=range]{flex:1 1;min-width:0;margin:0}.maker-custom-tuning .hint{margin:.6rem 0 0}.maker-chart-link:hover{filter:brightness(1.08);color:#fff}.chord-maker-cols{display:grid;grid-template-columns:auto minmax(18rem,30rem) auto;grid-gap:2rem;gap:2rem;align-items:start;margin-top:1rem}@media (max-width:1100px){.chord-maker-cols{grid-template-columns:auto minmax(16rem,1fr)}.chord-maker-preview{grid-column:1/-1}}@media (max-width:700px){.chord-maker-cols{grid-template-columns:1fr;gap:1rem}}.chord-maker-names h2{margin-top:0;font-size:1.1rem}.chord-maker-list{list-style:none;margin:0 0 .75rem;padding:0;display:grid;grid-template-columns:1fr max-content;align-items:center;grid-column-gap:.75rem;column-gap:.75rem}.chord-maker-list li{display:contents}.chord-maker-cell,.chord-maker-row{display:flex;align-items:baseline;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--line)}.chord-maker-cell,.chord-maker-save{align-items:center}.chord-maker-save{width:100%;display:inline-flex;justify-content:center;gap:.35rem;font-size:.8rem;padding:.25rem .6rem;white-space:nowrap}.chord-maker-name{font-size:1.3rem;font-weight:700}.chord-maker-preview{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin-top:0;text-align:center;max-width:9rem}.voicing-editor{margin:.6rem 0}.voicing-neck{width:max-content}.chord-maker .voicing-neck,.chord-maker-instrument>*{margin-inline:auto}.voicing-neck.horizontal{display:flex;align-items:stretch}.voicing-headstock{display:block;width:100%;height:2.1rem;margin-bottom:-1px;overflow:visible;fill:var(--neck-board);stroke:var(--neck-edge);stroke-width:.6;vector-effect:non-scaling-stroke}.voicing-neck.horizontal .voicing-headstock{width:2.1rem;height:auto;margin:0 -1px 0 0;align-self:stretch}.voicing-neck.horizontal .voicing-grid{border-radius:0 10px 10px 0}.voicing-grid{display:grid;grid-gap:0;gap:0;align-items:center;width:max-content;background:var(--neck-board);padding:.35rem .7rem .7rem;border-radius:0 0 10px 10px;box-shadow:inset 0 0 0 1px var(--neck-edge)}.voicing-rowlabel,.voicing-stringnote{font-size:.7rem;color:var(--neck-mark);text-align:center}.voicing-stringnote{padding-top:.25rem;font-weight:600}.voicing-cell,.voicing-nut,.voicing-open{position:relative;height:1.8rem;border:0;background:transparent;cursor:pointer;font-size:.95rem;line-height:1;padding:0;color:var(--neck-mark);border-radius:0}.voicing-cell{background-image:linear-gradient(to right,transparent calc(50% - .75px),var(--neck-string) calc(50% - .75px),var(--neck-string) calc(50% + .75px),transparent calc(50% + .75px));border-bottom:1.5px solid var(--neck-fret)}.voicing-nut{border-bottom:4px solid var(--neck-nut);border-radius:0}.voicing-cell:hover,.voicing-nut:hover,.voicing-open:hover{background-color:var(--neck-hover)}.voicing-cell.on,.voicing-nut.on,.voicing-open.on{background-color:transparent;color:var(--accent);font-size:1.6rem}.voicing-nut.on{font-size:1rem}.voicing-open.on{font-size:1.15rem}.voicing-grid.horizontal .voicing-cell{background-image:linear-gradient(to bottom,transparent calc(50% - .75px),var(--neck-string) calc(50% - .75px),var(--neck-string) calc(50% + .75px),transparent calc(50% + .75px));border-bottom:0;border-right:1.5px solid var(--neck-fret)}.voicing-grid.horizontal .voicing-nut{border-bottom:0;border-right:4px solid var(--neck-nut)}.voicing-grid.horizontal .voicing-stringnote{padding-top:0;padding-right:.35rem;text-align:right}.voicing-cell.barred{background-color:var(--accent);color:#fff;border-radius:0;background-image:none}.voicing-barre-toggle{margin-left:.2rem;border:none;background:none;cursor:pointer;color:var(--muted);font-size:.85rem;padding:0 .15rem}.voicing-barre-toggle.on{color:var(--accent);font-weight:700}