:root{--nav-w: 192px;--brand: #1a56db;--brand-bg: #eff6ff;--brand-text: #1e40af;--color-background-primary: #fff;--color-background-secondary: #f8fafc;--color-background-tertiary: #f1f5f9;--color-background-success: #ecfdf5;--color-background-warning: #fffbeb;--color-background-danger: #fef2f2;--color-border-secondary: #cbd5e1;--color-border-tertiary: #e2e8f0;--color-text-primary: #0f172a;--color-text-secondary: #64748b;--color-text-tertiary: #94a3b8;--color-text-success: #047857;--color-text-warning: #b45309;--color-text-danger: #b91c1c;--border-radius-md: 6px;--border-radius-lg: 8px;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;font-family:var(--font-sans)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;padding:16px;background:var(--color-background-tertiary);color:var(--color-text-primary)}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:calc(100vh - 32px);overflow:hidden;background:var(--color-background-tertiary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);box-shadow:0 20px 50px #0f172a14}.app-nav{display:flex;flex-direction:column;gap:1px;overflow-y:auto;background:#111827;border-right:.5px solid rgba(255,255,255,.08);color:#cbd5e1}.brand{display:flex;align-items:center;gap:9px;margin-bottom:4px;padding:14px 14px 12px;border-bottom:.5px solid rgba(255,255,255,.08)}.brand-mark{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:var(--border-radius-md);background:var(--brand);color:#fff;font-size:11px;font-weight:600}.brand-name{color:#f8fafc;font-size:14px;font-weight:500;line-height:1.2}.brand-subtitle{color:#9ca3af;font-size:10px}.nav-items{display:flex;flex-direction:column;gap:1px}.nav-group{display:contents}.nav-group-label{padding:10px 14px 2px;color:#6b7280;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.nav-item{position:relative;display:flex;align-items:center;gap:9px;min-height:31px;padding:7px 14px;color:#cbd5e1;font-size:12px;line-height:1.15;transition:background .1s ease,color .1s ease}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#1a56db38;color:#bfdbfe;font-weight:500}.nav-item svg{flex-shrink:0}.nav-pill{margin-left:auto;padding:1px 6px;border-radius:10px;background:var(--color-background-danger);color:var(--color-text-danger);font-size:9px;font-weight:500}.app-main{min-width:0;overflow:auto}.page{display:flex;flex:1;flex-direction:column;gap:14px;min-height:100%;padding:14px 18px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:0}.page-title{margin:0;color:var(--color-text-primary);font-size:16px;font-weight:500;line-height:1.25;letter-spacing:0}.page-subtitle{margin:1px 0 0;color:var(--color-text-secondary);font-size:11px}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:1fr 280px;align-items:start}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.two-col{display:grid;grid-template-columns:1fr 280px;gap:12px;align-items:start}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.toolbar{display:flex;gap:6px;flex-wrap:wrap}.toolbar .rm{display:inline-flex;align-items:center;gap:5px}.avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--brand-bg);color:var(--brand-text);font-size:10px;font-weight:500}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:12px}.slbl{display:flex;align-items:center;gap:5px;margin-bottom:4px;color:var(--color-text-secondary);font-size:10px}.sval{color:var(--color-text-primary);font-size:20px;font-weight:500}.sdlt{margin-top:3px;font-size:10px}.up{color:var(--color-text-success)}.dn{color:var(--color-text-danger)}.nt{color:var(--color-text-secondary)}.card{overflow:hidden;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg)}.card-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.card-title{margin:0;color:var(--color-text-primary);font-size:12px;font-weight:500}.card>strong,.card>p{display:block;padding:0 14px}.card>strong{padding-top:12px;color:var(--color-text-primary);font-size:20px;font-weight:500}.card>p:last-child{padding-bottom:12px}.card-foot{padding:0 14px 10px}.card-pad{padding:14px}.row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.row:last-child,.row:last-of-type{border-bottom:0}.row:hover{background:var(--color-background-secondary)}.event-list-item{border-bottom:.5px solid var(--color-border-tertiary)}.event-list-item:last-child{border-bottom:0}.event-list-item .row{border-bottom:0}.event-list-meta{display:flex;flex-wrap:wrap;gap:6px 12px;padding:0 14px 10px 31px;color:var(--color-text-secondary);font-size:10px}.dot{width:7px;height:7px;flex-shrink:0;border-radius:50%}.dw{background:#7f77dd}.db{background:#ef9f27}.dc{background:#1d9e75}.dp{background:#d85a30}.df{background:#8b5cf6}.dl{background:#0ea5e9}.dr{background:#f43f5e}.rn{display:block;overflow:hidden;color:var(--color-text-primary);font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.rm,.muted{color:var(--color-text-secondary);font-size:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:31px;padding:6px 12px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font:inherit;font-size:12px;cursor:pointer}.button:hover{background:var(--color-background-secondary)}.button.primary{border-color:transparent;background:var(--brand);color:#fff;font-weight:500}.button.primary:hover{background:#1e40af}.button.compact{min-height:25px;padding:4px 9px;font-size:10px}.button.full-width{width:100%}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:9px;font-weight:500;white-space:nowrap}.badge.success{background:var(--color-background-success);color:var(--color-text-success)}.badge.warning{background:var(--color-background-warning);color:var(--color-text-warning)}.badge.danger{background:var(--color-background-danger);color:var(--color-text-danger)}.badge.info{background:var(--brand-bg);color:var(--brand-text)}.b-green,.song-tag.b-green{background:var(--color-background-success);color:var(--color-text-success)}.b-amber,.song-tag.b-amber{background:var(--color-background-warning);color:var(--color-text-warning)}.b-blue,.song-tag.b-blue{background:var(--brand-bg);color:var(--brand-text)}.b-gray,.song-tag.b-gray{background:var(--color-background-secondary);color:var(--color-text-secondary)}.b-red,.song-tag.b-red{background:var(--color-background-danger);color:var(--color-text-danger)}.alert-list{display:flex;flex-direction:column;gap:7px;padding:10px}.alert-item{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md)}.linked-row,.linked-alert{color:inherit}.linked-alert:hover{background:var(--color-background-secondary)}.dashboard-notice{display:flex;align-items:center;gap:7px;padding:8px 10px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-warning);color:var(--color-text-warning);font-size:11px}.empty-state{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:18px 14px;background:var(--color-background-secondary)}.readiness-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 8px}.readiness-list{padding:0 14px 10px}.a-ico{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border-radius:var(--border-radius-md)}.a-w{background:var(--color-background-warning);color:var(--color-text-warning)}.a-d{background:var(--color-background-danger);color:var(--color-text-danger)}.a-i{background:var(--brand-bg);color:var(--brand-text)}.atitle{color:var(--color-text-primary);font-size:11px;font-weight:500}.adesc{margin-top:1px;color:var(--color-text-secondary);font-size:10px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.field{position:relative;display:flex;flex-direction:column;gap:4px}.flbl{color:var(--color-text-secondary);font-size:11px}.fval{color:var(--color-text-primary);font-size:13px}.finput{width:100%;padding:7px 10px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font:inherit;font-size:12px}.field-hint{color:var(--color-text-secondary);font-size:10px;line-height:1.35}.autocomplete-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;overflow:hidden;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);box-shadow:0 12px 36px #0f172a1f}.autocomplete-option{display:flex;width:100%;flex-direction:column;gap:2px;padding:8px 10px;border:0;border-bottom:.5px solid var(--color-border-tertiary);background:transparent;color:var(--color-text-primary);font:inherit;font-size:12px;text-align:left;cursor:pointer}.autocomplete-option:last-child{border-bottom:0}.autocomplete-option:hover{background:var(--color-background-secondary)}.autocomplete-option small,.autocomplete-status{color:var(--color-text-secondary);font-size:10px}.autocomplete-status{padding:8px 10px}.divider{height:.5px;background:var(--color-border-tertiary)}.sec-lbl{margin-bottom:8px;color:var(--color-text-secondary);font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase}.q-section{margin-bottom:12px}.q-section-title{margin-bottom:8px;padding-bottom:6px;border-bottom:.5px solid var(--color-border-tertiary);color:var(--color-text-secondary);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.q-item{margin-bottom:10px}.q-label{margin-bottom:4px;color:var(--color-text-primary);font-size:12px}.q-ans{padding:7px 10px;border-radius:var(--border-radius-md);background:var(--color-background-secondary);color:var(--color-text-secondary);font-size:12px}.check-list-item{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:.5px solid var(--color-border-tertiary);font-size:12px}.check-list-item:last-child{border-bottom:0}.ci-done{color:var(--color-text-success)}.ci-warn{color:var(--color-text-warning)}.ci-todo{color:var(--color-text-tertiary)}.progress-track,.progress-track-gray{height:4px;margin-top:6px;overflow:hidden;border-radius:2px}.progress-track{background:#ffffff4d}.progress-track-gray{background:var(--color-background-secondary)}.progress-fill{height:100%;border-radius:2px;background:#fff}.progress-fill-brand{height:100%;border-radius:2px;background:var(--brand)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;min-width:0}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start}.calendar-card{min-width:0;overflow:hidden}.cal-weekdays{margin-bottom:6px}.calendar-month{gap:5px}.cal-empty{min-height:78px;min-width:0}.cal-dl{padding:3px 0;color:var(--color-text-tertiary);font-size:9px;text-align:center}.cal-d{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;min-height:30px;padding:6px;border-radius:var(--border-radius-md);color:var(--color-text-secondary);font-size:11px;text-align:left}.cal-d:hover{background:var(--color-background-secondary)}.cal-today{background:var(--brand);color:#fff;font-weight:500}.cal-cell{min-height:78px;border:.5px solid transparent;background:var(--color-background-primary);overflow:hidden}.cal-has-event{border-color:var(--color-border-secondary);background:#fbfdff}.cal-day-number{color:var(--color-text-primary);font-size:11px;font-weight:500}.cal-today .cal-day-number{color:#fff}.cal-cell{width:100%;font:inherit;cursor:pointer}.cal-cell:hover{border-color:var(--brand);background:var(--brand-bg)}.cal-selected{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.cal-event-stack{display:flex;flex-direction:column;gap:3px;width:100%;min-width:0;margin-top:4px}.cal-event-chip{display:flex;align-items:center;gap:4px;width:100%;min-width:0;max-width:100%;padding:2px 4px;border-radius:5px;background:var(--color-background-secondary);color:var(--color-text-primary);font-size:9px;line-height:1.2}.cal-event-chip span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-event-dot{width:5px;height:5px;flex-shrink:0;border-radius:50%}.cal-more{color:var(--color-text-tertiary);font-size:9px}.calendar-agenda{position:sticky;top:14px}.calendar-event-row{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.calendar-event-row:last-child{border-bottom:0}.calendar-event-row:hover{background:var(--color-background-secondary)}.calendar-event-row .rm{display:flex;align-items:center;gap:4px}.calendar-empty-state{padding:18px 14px;background:var(--color-background-secondary)}.tl-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.tl-item:last-child{border-bottom:0}.tl-time{width:44px;flex-shrink:0;color:var(--color-text-secondary);font-size:11px;font-weight:500;text-align:right}.tl-bar{align-self:stretch;width:3px;min-height:28px;flex-shrink:0;border-radius:2px;background:var(--brand)}.tl-label{color:var(--color-text-primary);font-size:12px;font-weight:500}.tl-note,.tl-song{color:var(--color-text-secondary);font-size:10px}.tl-song{color:var(--brand-text)}.song-row,.dnp-row,.equip-row{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.song-row:last-child,.dnp-row:last-child,.equip-row:last-child{border-bottom:0}.song-row:hover{background:var(--color-background-secondary)}.song-num{width:18px;flex-shrink:0;color:var(--color-text-tertiary);font-size:10px;text-align:right}.song-info{flex:1;min-width:0}.song-title{color:var(--color-text-primary);font-size:12px;font-weight:500}.song-artist{color:var(--color-text-secondary);font-size:10px}.song-tag{padding:1px 6px;border-radius:8px;font-size:9px;font-weight:500}.inv-line,.inv-total{display:flex;justify-content:space-between;align-items:center;padding:7px 14px;border-bottom:.5px solid var(--color-border-tertiary);color:var(--color-text-primary);font-size:12px}.inv-total{padding:10px 14px;font-size:13px;font-weight:500}.invoice-hero{display:flex;justify-content:space-between;gap:18px;padding:16px}.invoice-brand{display:flex;align-items:center;gap:7px;margin-bottom:12px}.invoice-brand-mark{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:var(--brand);color:#fff}.invoice-title{color:var(--color-text-secondary);font-size:11px;margin-bottom:2px}.invoice-amount{color:var(--color-text-primary);font-size:30px;font-weight:500;line-height:1.1}.invoice-hero-actions{display:flex;align-items:flex-start;gap:8px;flex-shrink:0}.invoice-layout{grid-template-columns:1fr 300px}.invoice-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.invoice-progress{padding:10px 14px 12px;background:var(--color-background-secondary)}.payment-panel{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border-radius:var(--border-radius-md);background:var(--color-background-success);color:var(--color-text-success)}.file-drop{padding:16px;border:1.5px dashed var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-secondary);color:var(--color-text-tertiary);text-align:center}.msg-bubble{max-width:75%;margin-bottom:8px;padding:8px 11px;border-radius:var(--border-radius-md);font-size:12px;line-height:1.5}.msg-dj{align-self:flex-end;margin-left:auto;background:var(--brand);color:#fff}.msg-client{background:var(--color-background-secondary);color:var(--color-text-primary)}.msg-time{margin-top:2px;font-size:9px;opacity:.7}.portal-frame{min-height:100%;background:var(--color-background-tertiary)}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-background-primary);border-bottom:.5px solid var(--color-border-tertiary)}.portal-brand{display:flex;align-items:center;gap:8px}.portal-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:var(--brand);color:#fff}.portal-hero{display:flex;justify-content:space-between;align-items:flex-start;padding:18px;background:var(--brand)}.portal-body{display:flex;flex-direction:column;gap:14px;padding:16px 18px}.input{width:100%;min-height:32px;padding:7px 10px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font:inherit;font-size:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a5c}.modal-panel{width:min(620px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:14px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);background:var(--color-background-primary);box-shadow:0 24px 70px #0f172a2e}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.form-status{margin-top:12px;padding:8px 10px;border-radius:var(--border-radius-md);background:var(--brand-bg);color:var(--brand-text);font-size:11px}@media(max-width:1120px){.calendar-layout{grid-template-columns:minmax(0,1fr) minmax(240px,280px)}.cal-d{padding:5px}}@media(max-width:860px){body{padding:0}.app-shell{display:flex;flex-direction:column;min-height:100vh;border:0;border-radius:0;box-shadow:none}.app-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;order:2;min-height:68px;max-height:112px;flex-direction:row;align-items:stretch;gap:0;overflow-x:auto;overflow-y:hidden;padding:0 6px;border-right:0;border-top:.5px solid var(--color-border-tertiary);background:#fffffffa}.brand,.nav-group-label{display:none}.nav-items,.nav-group{display:flex;flex-direction:row;gap:0;min-width:max-content}.nav-item{min-width:76px;flex:0 0 76px;flex-direction:column;justify-content:center;gap:3px;margin:6px 1px;padding:8px 6px;border-radius:var(--border-radius-md);color:var(--color-text-secondary);font-size:10px;text-align:center;white-space:normal}.nav-item:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.nav-item.active{background:var(--brand-bg);color:var(--brand-text)}.nav-pill{position:absolute;top:3px;right:7px;margin-left:0}.app-main{order:1;min-height:0;flex:1}.page{gap:12px;padding:14px 14px 92px}.page-header{align-items:flex-start}.grid-2,.grid-3,.two-col,.three-col,.stat-row,.calendar-layout,.field-row{grid-template-columns:1fr}.calendar-agenda{position:static}.cal-empty,.cal-cell{min-height:46px}.cal-d{align-items:center;padding:5px 3px;text-align:center}.cal-day-number{width:100%}.calendar-month{gap:3px}.cal-event-stack{flex-flow:row wrap;justify-content:center;gap:3px;margin-top:3px}.cal-event-chip{width:7px;height:7px;padding:0;border-radius:50%;background:transparent}.cal-event-chip span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cal-event-dot{width:7px;height:7px}.cal-more{width:100%;font-size:8px;line-height:1;text-align:center}.row,.song-row,.dnp-row,.equip-row{align-items:flex-start}.rn{white-space:normal}.portal-header,.portal-body{padding-left:14px;padding-right:14px}.msg-bubble{max-width:92%}.invoice-hero{flex-direction:column}.invoice-hero-actions{width:100%;flex-wrap:wrap}.invoice-hero-actions .button{flex:1}.invoice-meta{grid-template-columns:1fr}.modal-backdrop{align-items:flex-start;padding:14px 14px 92px}.modal-panel{max-height:calc(100vh - 106px)}}@media(max-width:520px){.page-header{flex-direction:column}.button{min-height:34px}.card>strong{font-size:18px}.cal-empty,.cal-cell{min-height:40px}.modal-head,.modal-actions{flex-direction:column}.modal-actions .button{width:100%}}
