:root{--ink:#18223d;--muted:#75809a;--line:#e9ecf4;--paper:#fff;--canvas:#f7f8fc;--blue:#3069ff;--teal:#11a59a;--purple:#7149df;--coral:#ee665f;--gold:#c98713;font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}body{margin:0;background:var(--canvas)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;background:#fff;border-right:1px solid var(--line);padding:24px 14px 16px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:3}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);padding:0 10px 21px}.brand-mark{color:var(--blue);font-size:27px;font-weight:700}.brand strong,.brand small{display:block}.brand strong{font-size:18px;line-height:19px;letter-spacing:-.6px}.brand small,.user-card small{font-size:11px;color:var(--muted);margin-top:2px}.edition-chip{margin:0 8px 18px;background:#f4f7ff;border:1px solid #e0e8ff;border-radius:10px;padding:9px;display:flex;align-items:flex-start;gap:8px;color:#57627c;font-size:10px;line-height:14px}.edition-chip b{color:#26375e;font-size:11px}.dot{width:7px;height:7px;background:#3e8b61;border-radius:50%;margin-top:4px}.nav{display:grid;gap:3px}.nav-item{border:0;background:transparent;text-align:left;border-radius:8px;padding:10px 11px;color:#67728a;font-size:13px;display:flex;align-items:center;gap:11px}.nav-item span{width:15px;text-align:center;font-size:16px}.nav-item:hover{background:#f5f7fc}.nav-item.active{color:var(--blue);background:#edf2ff;font-weight:700}.nav-label{font-size:9px;font-weight:700;letter-spacing:.7px;color:#a4acc0;margin:25px 11px 8px}.user-card{border-top:1px solid var(--line);padding:14px 9px 0;margin-top:auto;display:flex;align-items:center;gap:8px;font-size:11px}.user-card b{display:block}.user-card button{border:0;background:none;margin-left:auto;color:var(--muted)}.user-avatar,.top-avatar{display:grid;place-items:center;background:#f4d9c6;color:#81452d;border-radius:50%;font-size:9px;font-weight:700}.user-avatar{width:27px;height:27px}.main{margin-left:245px;width:calc(100% - 245px)}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between}.breadcrumbs{font-size:12px;color:var(--muted)}.breadcrumbs span{margin:0 7px;color:#c2c7d4}.top-actions{display:flex;align-items:center;gap:17px}.icon-button{border:0;background:none;color:#7e8aa5;font-size:18px}.top-avatar{width:28px;height:28px}.menu-toggle{display:none}.view{display:none;padding:34px 42px 48px;max-width:1440px;margin:0 auto}.view.active{display:block}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:26px}.eyebrow{color:var(--blue);font-size:10px;letter-spacing:.7px;font-weight:700;margin:0 0 6px}.page-heading h1,.placeholder-view h1{font-family:"Playfair Display",serif;font-size:31px;letter-spacing:-1px;margin:0;color:#1b2541}.page-heading p:not(.eyebrow){margin:5px 0 0;color:var(--muted);font-size:13px}.button{border:1px solid transparent;border-radius:8px;padding:10px 14px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;gap:7px;justify-content:center}.button.primary{background:var(--blue);color:white;box-shadow:0 4px 12px #3069ff35}.button.secondary{color:#53617e;background:white;border-color:#dfe4ef}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;min-height:130px;position:relative;overflow:hidden}.metric-card:before{content:"";position:absolute;inset:auto -18px -27px auto;width:82px;height:82px;background:currentColor;opacity:.06;border-radius:50%}.metric-card.blue{color:var(--blue)}.metric-card.teal{color:var(--teal)}.metric-card.purple{color:var(--purple)}.metric-card.coral{color:var(--coral)}.metric-card span,.metric-card small{display:block;font-size:11px;color:var(--muted);position:relative}.metric-card strong{font-size:27px;display:inline-block;color:var(--ink);margin:7px 0 2px;position:relative}.metric-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:7px;background:currentColor;color:#fff;margin-bottom:10px;font-size:15px}.metric-grid.compact .metric-card{min-height:100px}.dashboard-grid{display:grid;grid-template-columns:1.14fr 1.25fr .9fr;gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:13px}.panel-heading h2{font-size:14px;margin:0}.panel-heading p{color:var(--muted);font-size:11px;margin:3px 0}.text-button{background:transparent;border:0;color:var(--blue);font-size:11px;font-weight:700;padding:1px}.pending-panel,.songs-panel,.previews-panel{min-height:320px}.pending-item,.song-row,.preview-row,.show-row,.student-row{display:flex;align-items:center;gap:10px;border-top:1px solid #f0f1f6;padding:11px 0}.pending-item:first-child,.song-row:first-child,.preview-row:first-child,.show-row:first-child,.student-row:first-child{border-top:0}.pending-symbol{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#fff4e4;color:var(--gold);font-size:13px}.pending-item b,.song-row b,.preview-row b,.show-row b,.student-row b{display:block;font-size:11px}.pending-item small,.song-row small,.preview-row small,.show-row small,.student-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.song-symbol{width:27px;height:27px;display:grid;place-items:center;border-radius:7px;background:#edf2ff;color:var(--blue);font-size:14px}.song-row .row-meta,.show-row .row-meta{margin-left:auto;text-align:right}.status{font-size:9px;font-weight:700;border-radius:99px;padding:4px 7px;display:inline-block}.status.confirmed{background:#e6f8ef;color:#257a52}.status.pending{background:#fff2e9;color:#d26324}.status.loose{background:#fff7db;color:#a87500}.preview-date{background:#f0edff;color:var(--purple);width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:700;text-align:center;line-height:11px}.preview-row .row-meta{margin-left:auto;color:var(--blue);font-size:11px;font-weight:700}.show-table{padding:20px}.show-row{padding:15px 4px}.show-index{font-family:"Playfair Display",serif;color:#b1b8c9;font-size:22px;width:30px}.show-row .show-stats{display:flex;gap:18px;margin-left:auto}.show-stats span{font-size:10px;color:var(--muted);text-align:center}.show-stats b{color:var(--ink);font-size:12px;margin-bottom:3px}.show-row button{margin-left:15px;border:0;background:#f0f3f9;border-radius:7px;width:29px;height:29px;color:var(--blue)}.split-layout{display:grid;grid-template-columns:310px 1fr;gap:16px}.song-browser{padding:11px}.search-box{display:flex;align-items:center;gap:7px;background:#f6f7fb;border-radius:8px;padding:9px 10px;color:#9ba3b7;margin-bottom:8px}.search-box input{border:0;background:transparent;outline:0;width:100%;font-size:11px}.song-browser .song-row{padding:12px 6px;cursor:pointer}.song-browser .song-row.selected{background:#edf2ff;border-radius:8px;padding-left:8px;padding-right:8px}.song-detail{min-height:480px}.song-title{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:15px}.song-title h2{font-family:"Playfair Display",serif;font-size:25px;margin:1px 0 3px}.song-title p{font-size:12px;color:var(--muted);margin:0}.song-actions{display:flex;gap:8px}.song-actions button{padding:8px 10px}.song-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.song-info{padding:10px;border-radius:8px;background:#f7f8fc}.song-info span{font-size:9px;color:var(--muted);display:block;margin-bottom:4px}.song-info b{font-size:11px}.formation-title{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.formation-title h3{font-size:13px;margin:0}.participant-list{margin-top:9px}.participant-row{display:grid;grid-template-columns:1.3fr .8fr .65fr auto;align-items:center;gap:8px;padding:10px 4px;border-bottom:1px solid #f0f1f6;font-size:11px}.participant-row .participant-name{font-weight:700}.participant-row .participant-name small{display:block;color:var(--gold);font-size:9px;margin-top:2px}.participant-row .role{color:var(--muted)}.participant-row .note{font-size:10px;color:var(--muted)}.preview-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.preview-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:14px}.date-box{background:#f0edff;color:var(--purple);border-radius:10px;text-align:center;padding:8px 3px;font-size:10px;font-weight:700}.date-box b{display:block;font-size:20px;line-height:20px}.preview-card h2{font-size:14px;margin:0 0 4px}.preview-card p{margin:0;color:var(--muted);font-size:11px}.preview-card button{border:0;background:#f0f3f9;border-radius:7px;width:30px;height:30px;color:var(--blue)}.info-panel{display:flex;gap:16px;align-items:flex-start;margin-bottom:16px;background:linear-gradient(110deg,#f4f7ff,#fff)}.info-panel h2{font-size:14px;margin:2px 0 5px}.info-panel p{font-size:12px;line-height:18px;color:var(--muted);margin:0}.info-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--blue);color:#fff}.student-row{padding:13px 3px}.student-initial{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#edf2ff;color:var(--blue);font-size:10px;font-weight:700}.student-row .student-meta{margin-left:auto;display:flex;gap:8px;align-items:center}.badge{font-size:10px;border-radius:99px;padding:5px 8px;font-weight:700}.badge.neutral{background:#f1f3f8;color:#68748f}.badge.starter{background:#fff7dd;color:#a87500}.placeholder-view{text-align:center;padding-top:125px}.large-icon{display:grid;place-items:center;width:55px;height:55px;background:#edf2ff;color:var(--blue);border-radius:14px;margin:0 auto 16px;font-size:26px}.placeholder-view p{color:var(--muted);font-size:13px;margin:7px 0 19px}dialog{border:0;padding:0;background:transparent;max-width:calc(100vw - 32px)}dialog::backdrop{background:#15214370;backdrop-filter:blur(2px)}.modal{width:540px;background:#fff;border-radius:14px;box-shadow:0 20px 65px #11183344;padding:26px;position:relative}.modal.small{width:400px}.modal h2{font-family:"Playfair Display",serif;margin:0;font-size:24px}.modal-close{position:absolute;right:16px;top:14px;border:0;background:#f4f5f9;width:28px;height:28px;border-radius:50%;font-size:20px;color:#6f7990}.dialog-intro{font-size:12px;line-height:17px;color:var(--muted);margin:6px 0 19px}.modal label{display:block;color:#49546e;font-size:11px;font-weight:700;margin:13px 0}.modal select,.modal input:not([type="checkbox"]){display:block;width:100%;border:1px solid #dfe4ef;border-radius:7px;padding:10px;margin-top:6px;color:var(--ink);background:#fff;font-size:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal .checkbox-label{display:flex;gap:7px;align-items:center;margin-top:33px;font-size:11px}.declaration{display:flex!important;gap:8px;align-items:flex-start;border:1px solid #f0d999;background:#fffaf0;border-radius:8px;padding:10px;font-size:10px!important;line-height:14px}.declaration input{margin-top:2px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.modal .modal-actions{margin-bottom:0}@media(max-width:1050px){.dashboard-grid{grid-template-columns:1fr 1fr}.previews-panel{grid-column:span 2}.metric-grid{grid-template-columns:repeat(2,1fr)}.preview-cards{grid-template-columns:1fr}.show-stats{display:none!important}}@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0);box-shadow:10px 0 30px #10162c28}.main{margin-left:0;width:100%}.topbar{padding:0 20px}.menu-toggle{display:block;border:0;background:none;font-size:19px}.breadcrumbs{font-size:10px}.view{padding:25px 19px}.page-heading{align-items:flex-start;gap:16px;flex-direction:column}.page-heading h1{font-size:28px}.metric-grid,.dashboard-grid,.split-layout{grid-template-columns:1fr}.previews-panel{grid-column:auto}.metric-card{min-height:98px}.pending-panel,.songs-panel,.previews-panel{min-height:auto}.split-layout{gap:12px}.song-detail{min-height:300px}.song-info-grid{grid-template-columns:1fr 1fr}.participant-row{grid-template-columns:1.15fr .8fr auto}.participant-row .note{display:none}.preview-card{grid-template-columns:44px 1fr auto}.modal{width:min(540px,calc(100vw - 28px));padding:21px}.form-row{grid-template-columns:1fr}.modal .checkbox-label{margin-top:3px}}
