:root{--bg: #f5f7fb;--bg-soft: #eef2f8;--surface: #ffffff;--surface-2: #ffffff;--text: #141924;--text-soft: #52607a;--primary: #1f6feb;--primary-strong: #1858bb;--accent: #3b82f6;--danger: #d6456d;--line: #d9e1ef;--line-strong: #c7d2e8;--shadow: 0 8px 20px rgba(23, 37, 64, .08)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:IBM Plex Sans,Noto Sans,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}.shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.shell-wide{align-items:start}.card{width:min(440px,100%);background:var(--surface);border:1px solid #e7edf7;border-radius:12px;padding:1.5rem;box-shadow:var(--shadow)}.board{width:min(1160px,100%)}.board-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}h1,h2,h3{margin:0;letter-spacing:-.02em}h1{font-size:clamp(1.35rem,1.8vw,2rem)}h2{font-size:1.5rem}p{margin-top:.5rem;color:var(--text-soft)}.workspace-tabs{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1rem;padding-bottom:.3rem}.workspace-tab{background:transparent;color:#51617d;border:0;border-radius:0;font-weight:600;padding:.55rem .7rem}.workspace-tab.active{background:transparent;color:#0f2c66;border-bottom:2px solid #3b82f6}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.workspace-grid{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);grid-template-areas:"setlists set" "library set";align-items:start}.panel-setlists{grid-area:setlists}.panel-library{grid-area:library}.panel-set{grid-area:set}.panel{border:0;border-radius:10px;padding:1rem;background:var(--surface-2);min-height:420px;box-shadow:0 1px #edf2fa}.form{display:grid;gap:.75rem}.form-stack{display:grid;gap:.55rem;margin-top:.8rem}.form-inline{display:grid;grid-template-columns:1fr auto;gap:.5rem;margin-top:.75rem;margin-bottom:.75rem}label{display:grid;gap:.28rem;font-size:.93rem;color:var(--text-soft)}input,select{border:1px solid var(--line-strong);border-radius:8px;padding:.66rem .75rem;font-size:.95rem;width:100%;color:var(--text);background:#fff}input::placeholder{color:#8c99b2}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #66a7ff38}input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--primary)}button,.stage-link-button{border:0;border-radius:8px;background:var(--primary);color:#fff;padding:.68rem .9rem;font-size:.9rem;font-weight:700;cursor:pointer;transition:transform .12s ease,filter .12s ease,background .12s ease}button:hover,.stage-link-button:hover{transform:translateY(-1px);filter:brightness(1.08)}button:active,.stage-link-button:active{transform:translateY(0)}button[disabled]{opacity:.5;cursor:not-allowed;transform:none}.button-secondary{background:#ecf1f9;color:#1f2f46;border:1px solid var(--line)}.button-icon{min-width:42px;padding:.66rem;font-size:1.2rem;line-height:1}.button-danger{background:var(--danger);color:#fff}.button-danger-outline{background:#fff;color:#a73657;border:1px solid #e8bfd0}.button-danger-outline:hover{background:#fff2f7}.link{margin-top:.75rem;background:transparent;color:var(--primary);padding-left:0;font-weight:700;text-align:left}.link:hover{background:transparent;color:#76fff4}.error,.success{margin-top:.75rem;border-radius:10px;padding:.55rem .65rem;font-weight:700}.error{color:#7b1f3c;background:#ffe8ef;border:1px solid #f0bfd0}.success{color:#0e4d3b;background:#e6faf4;border:1px solid #bdeede}.list,.ordered-list{margin:0;padding-left:1.25rem;display:grid;gap:.45rem}.list{list-style:none;padding-left:0}.list.compact{max-height:340px;overflow:auto;padding-right:.2rem}.list.compact::-webkit-scrollbar{width:8px}.list.compact::-webkit-scrollbar-thumb{background:#b8c4dc;border-radius:999px}.list-button{width:100%;text-align:left;background:#ecf1f9;color:var(--text)}.list-button.active{background:#dde9ff;color:#102d5f}.ordered-list li{display:grid;gap:.45rem;margin-bottom:.45rem;border:1px solid #e5ebf6;border-radius:8px;background:#fff;padding:.55rem}.ordered-list-scroll{max-height:410px;overflow:auto;padding-right:.3rem}.ordered-list-scroll::-webkit-scrollbar{width:8px}.ordered-list-scroll::-webkit-scrollbar-thumb{background:#b8c4dc;border-radius:999px}.row-actions{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.actions-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.button-sm{padding:.5rem .68rem;font-size:.82rem}.spotify-panel{min-height:auto;margin-bottom:1rem}.panel-requests,.panel-library{min-height:520px}.qr-block{margin:.75rem 0;display:grid;gap:.55rem;justify-items:start}.qr-image{width:min(220px,100%);height:auto;background:#fff;border-radius:8px;border:1px solid var(--line);padding:.45rem}.muted{margin:0;color:var(--text-soft);font-size:.88rem}.helper-text{font-size:.82rem;color:#73809b}.stage-shell{min-height:100vh;color:#e8eeff;padding:1rem;display:grid;gap:1rem;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);grid-template-areas:"header header" "main queue" "setlist setlist";background:radial-gradient(circle at 10% 0%,rgba(46,230,214,.2) 0%,transparent 32%),radial-gradient(circle at 100% 30%,rgba(102,167,255,.24) 0%,transparent 38%),#050914}.stage-header{grid-area:header;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border:1px solid var(--line);border-radius:14px;padding:1rem 1.25rem;background:#0f1a31}.stage-tag{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:#8ef7ef}.stage-main{grid-area:main;border:1px solid var(--line);border-radius:14px;padding:1.45rem;background:#0f1a31}.stage-position{margin:0;font-size:1rem;color:#9eb4de}.stage-song-title{margin-top:.75rem;font-size:clamp(2rem,5vw,4rem);line-height:1.08}.stage-song-artist{margin-top:.5rem;font-size:clamp(1.05rem,2.1vw,1.5rem);color:#a9bde3}.stage-links{margin-top:1.2rem;display:flex;gap:.6rem;flex-wrap:wrap}.stage-link-button{display:inline-block;text-decoration:none}.stage-cifra{margin-top:1.2rem;border:1px solid #1e3a6e;border-radius:12px;padding:1rem;background:#0a1225}.stage-cifra-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.stage-cifra-header strong{font-size:1rem;color:#c6d8f5}.stage-cifra-header .button-secondary{background:#1a2d52;color:#c6d8f5;border-color:#2a4a7a}.stage-cifra-content{max-height:60vh;overflow:auto;border-radius:8px;background:#070e1c;padding:1rem}.stage-cifra-content::-webkit-scrollbar{width:8px}.stage-cifra-content::-webkit-scrollbar-thumb{background:#2a4a7a;border-radius:999px}.stage-cifra-content pre{margin:0;font-family:Courier New,Courier,monospace;font-size:clamp(.78rem,1.4vw,.95rem);line-height:1.5;color:#e0ecff;white-space:pre-wrap;word-break:break-word}.stage-cifra-error{color:#f5a0b8;margin:.5rem 0;font-size:.9rem}.stage-cifra-loading{color:#8eb4e8;margin:.5rem 0;font-size:.9rem}.stage-nav{margin-top:1.45rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.stage-nav button{font-size:clamp(1rem,2.5vw,1.3rem);padding:.9rem 1rem}.stage-queue,.stage-setlist{border:1px solid var(--line);border-radius:14px;padding:1rem;background:#0f1a31}.stage-queue{grid-area:queue}.stage-setlist{grid-area:setlist}.stage-queue h3,.stage-setlist h3{margin-bottom:.75rem}.stage-setlist-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stage-item-button{background:#243861;color:#e8eeff;text-align:left}.stage-item-button.active{background:linear-gradient(135deg,var(--accent),#2e7bff);color:#f7fbff}.list-stage-queue{max-height:430px}.stage-request-item{border:1px solid #294371;border-radius:10px;padding:.6rem;background:#0d1730}.stage-request-title{display:block;color:#f0f5ff}.stage-request-meta{margin:.35rem 0 .5rem;color:#9db2da;font-size:.85rem}.set-item-card{gap:.7rem}.set-item-header{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.set-item-title{font-weight:600}.set-item-secondary-actions{padding-top:.2rem}.form-inline-compact{grid-template-columns:1fr auto}@media (max-width: 960px){.columns{grid-template-columns:1fr}.workspace-grid{grid-template-columns:1fr;grid-template-areas:"setlists" "library" "set"}.workspace-tabs{gap:.5rem}.panel{min-height:auto}.form-inline,.actions-grid-two{grid-template-columns:1fr}.stage-shell{grid-template-columns:1fr;grid-template-areas:"header" "main" "queue" "setlist";padding:.75rem}.stage-header,.stage-main,.stage-queue,.stage-setlist{padding:1rem}.stage-nav{grid-template-columns:1fr}.set-item-header{flex-direction:column}}
