:root{--bg:oklch(0.17 0.02 258);--bg-deep:oklch(0.135 0.02 258);--bg-panel:oklch(0.145 0.02 258);--bg-card:oklch(0.22 0.018 258);--bg-card-2:oklch(0.19 0.018 258);--border:oklch(1 0 0/0.08);--border-soft:oklch(1 0 0/0.06);--border-input:oklch(1 0 0/0.1);--text:oklch(0.97 0.004 258);--text-dim:oklch(0.85 0.01 258);--text-muted:oklch(0.7 0.015 258);--text-faint:oklch(0.6 0.015 258);--text-fainter:oklch(0.55 0.015 258);--text-ghost:oklch(0.5 0.015 258);--accent:oklch(0.68 0.19 290);--accent-hover:oklch(0.74 0.18 290);--accent-text:oklch(0.82 0.14 290);--accent-strong:oklch(0.85 0.14 290);--green:oklch(0.72 0.15 155);--amber:oklch(0.78 0.15 80);--red:oklch(0.68 0.18 25);--radius:12px;--radius-sm:8px}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.font-display{font-family:Space Grotesk,sans-serif}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:oklch(1 0 0/.14);border-radius:4px}a{color:var(--accent-text);text-decoration:none}a:hover{color:var(--accent-strong)}button,input,select,textarea{font-family:inherit}input::placeholder{color:var(--text-ghost)}button{font-family:inherit}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-deep);position:relative;overflow:hidden}.login-glow{width:900px;height:900px;border-radius:50%;background:radial-gradient(circle,oklch(.68 .19 290/.22),transparent 70%);top:-380px;transform:translateX(-50%)}.login-bg-logo,.login-glow{position:absolute;left:50%;pointer-events:none}.login-bg-logo{top:50%;width:1000px;max-width:none;transform:translate(-50%,-50%) rotate(-6deg);opacity:.1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.login-card{position:relative;width:380px;max-width:90vw;padding:40px 36px;background:oklch(.145 .02 258/.55);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:1px solid oklch(1 0 0/.1);border-radius:16px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6),inset 0 1px 0 oklch(1 0 0/.05)}.login-logo-row{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:32px}.login-logo-img{width:220px;height:auto}.login-subtitle{font-size:12.5px;color:var(--text-faint);margin-top:3px;text-align:center}.mobile-logo-img{height:24px;width:auto;flex:none}.field-group{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12px;color:var(--text-muted);font-weight:500}.field-input,select.field-input{background:var(--bg-deep);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:11px 12px;color:var(--text);font-size:14px;outline:none;width:100%}.login-card .field-input{background:oklch(.135 .02 258/.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.field-input:focus{border-color:oklch(.68 .19 290/.6)}.db-cell-input{padding:6px 8px;font-size:13px;background:transparent;border-color:transparent}.compact-field{padding:7px 10px;font-size:13px}.db-cell-input:hover{border-color:var(--border-input)}.db-cell-input:focus{background:var(--bg-deep);border-color:oklch(.68 .19 290/.6)}.db-amount-input::-webkit-inner-spin-button,.db-amount-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.db-amount-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.db-amount-wrap{display:flex;align-items:center;justify-content:center;gap:3px}.db-amount-wrap .db-amount-input{flex:none;width:80px;text-align:right}.db-amount-suffix{font-size:13px;color:var(--text-fainter);pointer-events:none}.btn-primary{background:var(--accent);color:var(--bg-deep);border:none;border-radius:var(--radius-sm);padding:12px;font-size:14.5px;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.login-form{display:flex;flex-direction:column;gap:14px}.login-footnote{text-align:center;font-size:12.5px;color:var(--text-ghost);margin-top:2px}.login-copyright{position:absolute;bottom:22px;font-size:11.5px;color:oklch(.42 .015 258);left:50%;transform:translateX(-50%)}.login-error{font-size:12.5px;color:var(--red);text-align:center;min-height:16px}.login-hint{text-align:center;font-size:11.5px;color:var(--text-faint);margin-top:10px;padding-top:12px;border-top:1px solid var(--border-soft)}.login-hint strong{color:var(--text-dim);font-weight:600}.app-shell{display:flex;min-height:100vh;background:var(--bg)}.nav-icon{flex:none}.link-btn{background:transparent;border:none;color:var(--text-ghost);font-size:11.5px;cursor:pointer}.link-btn:hover{color:var(--text)}.main-col{flex:1 1;min-width:0;display:flex;flex-direction:column}.mobile-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:oklch(.145 .02 258/.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:14px 18px;display:none;align-items:center;gap:10px}.content{flex:1 1;padding:32px 36px;position:relative}.page-transition{animation:page-fade-in .32s cubic-bezier(.16,1,.3,1)}@keyframes page-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.page-transition{animation:none}}.page-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:20px;gap:20px;padding:16px 36px;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:oklch(.17 .02 258/.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-soft)}.page-header-brand{display:flex;align-items:center}.topbar-logo-img{height:26px;width:auto}.topnav{position:relative;justify-self:center;display:flex;align-items:center;gap:2px;background:var(--bg-panel);border:1px solid var(--border);border-radius:13px;padding:4px}.topnav-indicator{position:absolute;top:4px;bottom:4px;left:0;z-index:0;background:linear-gradient(135deg,oklch(.66 .25 330),oklch(.58 .23 295));box-shadow:0 6px 20px -6px oklch(.6 .27 330/.65);border-radius:9px;transition:transform .55s cubic-bezier(.16,1,.3,1),width .55s cubic-bezier(.16,1,.3,1),opacity .15s ease;pointer-events:none}.topnav-item{position:relative;z-index:1;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:none;border-radius:9px;padding:8px 14px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-muted);white-space:nowrap;transition:color .2s ease}.topnav-item:hover{background:oklch(1 0 0/.05);color:var(--text)}.topnav-item.active{color:oklch(.99 .01 330)}@media (prefers-reduced-motion:reduce){.topnav-indicator{transition:opacity .15s ease}}.page-title-badge{height:40px;border-radius:12px;flex:none;background:linear-gradient(135deg,oklch(.68 .19 290/.25),oklch(.68 .19 290/.06));border:1px solid oklch(.68 .19 290/.28);box-shadow:0 4px 14px -4px oklch(.68 .19 290/.4),inset 0 1px 0 oklch(1 0 0/.06);color:var(--accent-strong);display:flex;align-items:center;gap:10px;padding:0 16px 0 12px}.page-title-badge span{font-family:Space Grotesk,sans-serif;font-weight:600;font-size:18px;color:var(--text)}.page-title-badge.sm{height:30px;border-radius:9px;padding:0 12px 0 8px;gap:7px}.page-title-badge.sm span{font-size:14px}.page-date{font-size:12.5px;color:var(--text-ghost);text-transform:capitalize}.profile-btn{background:transparent;border:none;padding:0;cursor:pointer;flex:none;border-radius:50%}.profile-btn-avatar{width:34px;height:34px;border-radius:50%;background:oklch(.3 .02 258);border:1px solid var(--border-input);display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600;color:var(--text)}.profile-btn:hover .profile-btn-avatar{border-color:oklch(.68 .19 290/.6)}.profile-overlay{position:fixed;inset:0;z-index:50}.profile-popover{position:fixed;top:62px;right:18px;width:250px;max-width:calc(100vw - 36px);background:oklch(.2 .02 258);border:1px solid var(--border-input);border-radius:14px;padding:22px 20px;z-index:51;box-shadow:0 20px 50px -12px rgba(0,0,0,.55);display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.profile-popover-avatar{width:72px;height:72px;border-radius:50%;background:var(--accent);color:var(--bg-deep);display:flex;align-items:center;justify-content:center;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:26px;margin-bottom:10px}.profile-popover-name{font-size:15px;font-weight:600}.profile-popover-role{font-size:12px;color:var(--text-faint);margin-bottom:16px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:14px;gap:14px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.card-centered{text-align:center}.card-title{font-size:12px;color:var(--text-faint);font-weight:500}.card-value{font-family:Space Grotesk,sans-serif;font-size:28px;font-weight:600;margin-top:6px}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.panel-title{font-size:13px;font-weight:600;margin-bottom:16px}.panel-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-header-row .panel-title{margin-bottom:0}.donut-wrap{position:relative;flex:none}.mini-donut{display:block;border-radius:50%}.mini-donut circle,.mini-donut path{cursor:pointer}.donut-tooltip{position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%);color:var(--text);font-family:Inter,system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;gap:3px;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:5}.donut-tooltip .seg-tooltip-label,.donut-tooltip .seg-tooltip-pct,.donut-tooltip .seg-tooltip-value{background:none;width:auto;padding:0}.donut-wrap:has(.donut-seg-past:hover) .donut-tooltip-past{opacity:1}.donut-wrap:has(.donut-seg-future:hover) .donut-tooltip-future{opacity:1}.donut-wrap:has(.donut-seg-projected:hover) .donut-tooltip-projected{opacity:1}.range-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cal-view-pills{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:8px;gap:8px}.cal-view-pills-left{justify-self:start}.cal-view-pills-right{justify-self:end}.view-mode-switch{position:relative;display:inline-flex;justify-self:center;background:var(--bg-card-2);border:1px solid var(--border-input);border-radius:20px;padding:3px}.view-mode-switch button{position:relative;z-index:1;border:none;background:transparent;cursor:pointer;padding:7px 18px;border-radius:17px;font-size:12.5px;font-weight:600;color:var(--text-muted);transition:color .15s ease}.view-mode-switch button.active{color:var(--accent-strong)}.view-mode-switch-thumb{position:absolute;top:3px;left:3px;bottom:3px;width:calc(50% - 3px);background:oklch(.68 .19 290/.18);border:1px solid oklch(.68 .19 290/.5);border-radius:17px;transition:transform .18s ease;z-index:0}.view-mode-switch-thumb.week{transform:translateX(100%)}.pill{padding:7px 14px;border-radius:20px;border:1px solid var(--border-input);background:transparent;color:var(--text-muted);font-size:12.5px;font-weight:600;cursor:pointer}.pill.active{background:oklch(.68 .19 290/.18);border-color:oklch(.68 .19 290/.5);color:var(--accent-strong)}.year-select-wrap{position:relative;display:inline-block}.year-picker-overlay{position:fixed;inset:0;z-index:40}.year-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:41;min-width:150px;background:var(--bg-card);border:1px solid var(--border-input);border-radius:10px;padding:6px;display:flex;flex-direction:column;box-shadow:0 16px 40px -10px rgba(0,0,0,.5)}.year-option{all:unset;cursor:pointer;padding:8px 12px;border-radius:6px;font-size:13px;color:var(--text-dim);box-sizing:border-box}.year-option:hover{background:oklch(1 0 0/.06);color:var(--text)}.year-option.active{color:var(--accent-strong);font-weight:600}.year-option-divider{height:1px;background:var(--border-soft);margin:4px 2px}.year-option{display:flex;align-items:center}.cf-band-dropdown{width:100%;box-sizing:border-box;max-height:220px;overflow-y:auto}.cf-band-noresults{padding:8px 12px;font-size:12.5px;color:var(--text-fainter)}.cf-datepicker{width:260px;padding:10px;left:auto;right:0}.cf-dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cf-dp-month-label{font-family:Space Grotesk,sans-serif;font-size:13.5px;font-weight:600}.cf-dp-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:3px;gap:3px}.cf-dp-weekday{text-align:center;font-size:10px;color:var(--text-ghost);font-weight:600;padding:4px 0}.cf-dp-day{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;font-size:12px;color:var(--text-dim);padding:6px 0;border-radius:6px;border:1px solid transparent}.cf-dp-day:hover{background:oklch(1 0 0/.06);color:var(--text)}.cf-dp-day.empty{visibility:hidden;cursor:default}.cf-dp-day.today{border-color:var(--border-input)}.cf-dp-day.selected{background:oklch(.68 .19 290/.18);color:var(--accent-strong);font-weight:600}.band-dropdown{max-height:320px;overflow-y:auto;min-width:220px}.band-check{display:inline-block;width:16px;flex:none;color:var(--accent-strong);font-weight:700}.chart-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.bars-row{display:flex;align-items:flex-end;gap:10px;height:150px}.bar-col{position:relative;flex:1 1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.bar-count{font-size:11px;color:var(--text-muted)}.bar-count-wrap{position:relative}.bar-count-exact{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:2;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:11px;color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease}.bar-col:hover .bar-count-wrap .bar-count{opacity:0}.bar-col:hover .bar-count-exact{opacity:1}.bar-fill-wrap{width:100%;max-width:34px;display:flex;flex-direction:column;min-height:3px;position:relative}.bar-seg{width:100%}.bar-seg:first-child{border-radius:4px 4px 0 0}.bar-seg.revenue-paid{background:var(--green)}.bar-seg.revenue-pending{background:oklch(.72 .15 155/.5)}.bar-seg.concerts-past{background:var(--accent)}.bar-seg.concerts-future{background:oklch(.68 .19 290/.5)}.bar-seg.concerts-pending{background:oklch(.68 .19 290/.25)}.bar-seg.revenue-projected{background:oklch(.72 .15 155/.25)}.bar-label{font-size:11px;color:var(--text-ghost)}.seg-tooltip{position:absolute;bottom:calc(100% + 1px);left:50%;transform:translateX(-50%);box-sizing:border-box;color:var(--text);font-family:Inter,system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:6}.bar-seg .seg-tooltip{bottom:calc(100% + 27px)}.bar-seg:hover .seg-tooltip{opacity:1}.seg-tooltip-label,.seg-tooltip-pct,.seg-tooltip-value{background:var(--bg-card);padding:2px 8px;border-radius:5px;width:-moz-fit-content;width:fit-content}.seg-tooltip-label{font-size:10.5px;font-weight:600;color:var(--text-muted);max-width:100px;text-align:center}.seg-tooltip-value{font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:700;color:var(--text)}.seg-tooltip-pct{font-size:11.5px;font-weight:700;color:var(--text-muted)}.hbars{display:flex;flex-direction:column;gap:12px}.hbar-row{position:relative;display:flex;align-items:center;gap:10px}.hbar-label{width:34px;flex:none;font-size:11px;color:var(--text-ghost);text-transform:capitalize}.hbar-track{flex:1 1;height:10px;display:flex}.hbar-fill{height:100%;min-width:3px}.hbar-fill:only-child{border-radius:5px}.hbar-fill:first-child:not(:only-child){border-radius:5px 0 0 5px}.hbar-fill:last-child:not(:only-child){border-radius:0 5px 5px 0}.hbar-fill.concerts-past{background:var(--accent)}.hbar-fill.concerts-future{background:oklch(.68 .19 290/.5)}.hbar-fill.concerts-pending{background:oklch(.68 .19 290/.25)}.hbar-fill.revenue-paid{background:var(--green)}.hbar-fill.revenue-pending{background:oklch(.72 .15 155/.5)}.hbar-fill.revenue-projected{background:oklch(.72 .15 155/.25)}.hbar-value{width:44px;flex:none;text-align:right;font-size:11px;color:var(--text-muted)}.hbar-value-wrap{position:relative;width:44px;flex:none}.hbar-value-exact{position:absolute;top:0;right:0;left:0;z-index:2;background:transparent;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:11px;color:var(--text);white-space:nowrap;text-align:right;opacity:0;pointer-events:none;transition:opacity .12s ease}.hbar-row:hover .hbar-value-wrap .hbar-value{opacity:0}.hbar-row:hover .hbar-value-exact{opacity:1}.upcoming-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:14px;gap:14px;align-items:start}.cal-side-panel .upcoming-days{grid-template-columns:1fr}.upcoming-day-card{background:var(--bg-deep);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:12px;transition:border-color .12s ease,box-shadow .12s ease}.upcoming-day-card.cal-hover-highlight{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.upcoming-day-card-header{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border-soft)}.upcoming-day-card-num{font-size:24px;font-weight:700;font-family:Space Grotesk,sans-serif;line-height:1;flex:none}.upcoming-day-card-meta{display:flex;flex-direction:column;min-width:0}.upcoming-day-card-weekday{font-size:12.5px;font-weight:600;text-transform:capitalize}.upcoming-day-card-fdr-label,.upcoming-day-card-month{font-size:10px;color:var(--text-fainter);text-transform:uppercase}.upcoming-day-card-fdr-label{font-weight:600;letter-spacing:.04em;flex:none;width:54px;text-align:center}.upcoming-day-card-concerts{display:flex;flex-direction:column;gap:10px}.upcoming-concert-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:8px;padding:4px 6px;margin:-4px -6px}.upcoming-concert-row.clickable{cursor:pointer}.upcoming-concert-row.clickable:hover{background:oklch(.26 .02 258)}.upcoming-concert-row.selected{background:oklch(.68 .19 290/.16);box-shadow:inset 2px 0 0 var(--accent)}.upcoming-concert-row.selected:hover{background:oklch(.68 .19 290/.2)}.upcoming-concert-text{display:flex;flex-direction:column;gap:3px;min-width:0}.upcoming-concert-actions{display:flex;align-items:center;gap:2px;flex:none}.upcoming-concert-band{font-size:12.5px;font-weight:600}.upcoming-concert-place{font-size:11px;color:var(--text-fainter)}.badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;flex:none;white-space:nowrap}.badge-btn{all:unset;box-sizing:border-box;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;flex:none;white-space:nowrap;cursor:pointer}.badge-btn:hover{filter:brightness(1.15)}.badge-btn:disabled{opacity:.6;cursor:default;pointer-events:none}.badge.sm{font-size:10.5px;padding:2px 8px}.instrument-badge{background:oklch(.68 .19 290/.14);color:oklch(.72 .16 290);display:inline-flex;align-items:center;gap:5px;padding-left:4px}.instrument-badge:not(:has(.instrument-badge-icon)){padding-left:9px}.instrument-badge-icon{width:18px;height:18px;object-fit:contain;flex:none;border-radius:4px}.badge.sm .instrument-badge-icon{width:14px;height:14px}.instrument-badge-x{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:50%;cursor:pointer;color:inherit;opacity:.7}.instrument-badge-x:hover{opacity:1;background:oklch(1 0 0/.15)}.instrument-dropdown{width:240px;padding:8px}.instrument-search{width:100%;box-sizing:border-box;margin-bottom:6px}.instrument-option-list{max-height:220px;overflow-y:auto}.status-cycle-btn{all:unset;font-size:12px;font-weight:600;padding:8px 14px;border-radius:20px;cursor:pointer;text-transform:capitalize;text-align:center;box-sizing:border-box;width:100%;transition:filter .12s ease}.status-cycle-btn:hover{filter:brightness(1.15)}.cal-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.cal-nav-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-input);background:var(--bg-card);color:var(--text);cursor:pointer;font-size:15px}.cal-month-label{font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:600;min-width:150px}.cal-cols{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.cal-left-col{display:flex;flex-direction:column;gap:16px;flex:1 1;min-width:280px}.cal-right-col{display:flex;flex-direction:column;gap:16px;width:100%;flex:none}.cal-grid-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.cal-week,.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-weekdays{margin-bottom:6px}.cal-week{margin-bottom:4px}.cal-weekday{text-align:center;font-size:11px;color:var(--text-ghost);font-weight:600;padding:4px 0}.cal-day{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--border-soft);background:var(--bg-card-2);color:oklch(.9 .004 258);cursor:pointer;font-size:12.5px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;min-width:0}.cal-day.empty{visibility:hidden;cursor:default}.cal-week-solo{grid-template-columns:repeat(7,1fr)}.cal-day.week-cell{aspect-ratio:auto;height:calc(100vh - 260px);min-height:300px;align-items:stretch;padding:10px 8px;gap:8px}.cal-day.week-cell .cal-day-num{font-size:15px;align-self:center;flex:none}.cal-day.week-cell .cal-day-dots{max-width:90%}.week-day-concerts{display:flex;flex-direction:column;gap:10px;width:100%;flex:1 1;min-height:0;overflow-y:auto;text-align:left}.cal-day.selected{background:oklch(.68 .19 290/.12)}.cal-day.cal-hover-highlight,.cal-day.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cal-day:not(.empty):hover{border-color:var(--accent)}.cal-day.week-cell:hover{border-color:var(--border-soft)}.cal-day.today{background:oklch(1 0 0/.04)}.cal-day.today .cal-day-num{color:var(--accent-strong);font-weight:700}.cal-day-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;max-width:100%}.cal-day-dot{width:7px;height:7px;border-radius:50%}.cal-day-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px) scale(.94);width:max-content;max-width:min(720px,92vw);box-sizing:border-box;background:oklch(.24 .02 258/.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-input);color:var(--text);font-family:Inter,system-ui,sans-serif;display:flex;flex-direction:row;gap:16px;text-align:left;padding:9px 11px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .13s ease,transform .13s ease;z-index:6;transform-origin:bottom center;box-shadow:0 8px 20px -6px rgba(0,0,0,.5)}.cal-day:hover .cal-day-tooltip{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}.cal-day-tooltip-col{display:flex;flex-direction:column;gap:7px}.cal-day-tooltip-row{display:flex;align-items:flex-start;gap:6px}.cal-day-tooltip-dot{width:7px;height:7px;border-radius:50%;flex:none;margin-top:4px}.cal-day-tooltip-text{display:flex;flex-direction:column;gap:1px;min-width:0}.cal-day-tooltip-band{font-size:11.5px;font-weight:600;white-space:nowrap}.cal-day-tooltip-city{font-size:10.5px;color:var(--text-faint);white-space:nowrap}.cal-side-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-sizing:border-box;overflow-y:auto;max-height:calc(100vh - 197px)}.cal-side-title{height:32px;display:flex;align-items:center;font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:600}.cal-empty{font-size:12.5px;color:var(--text-ghost);text-align:center;padding:20px 0}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.concerts-list,.contactes-list{display:flex;flex-direction:column;gap:16px}.t-head.concerts-cols,.t-head.contactes-cols{border-radius:var(--radius);border:1px solid var(--border)}.t-head.concerts-cols,.t-head.contactes-cols,.t-head.db-cols{position:-webkit-sticky;position:sticky;top:75px;z-index:2;background:var(--bg-card)}@media (max-width:899px){.t-head.concerts-cols,.t-head.contactes-cols,.t-head.db-cols{top:63px}}.input,select.input{background:var(--bg-card);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:9px 12px;color:var(--text);font-size:13px;outline:none}.input.search{flex:1 1;min-width:180px}.input:focus,select.input:focus{border-color:oklch(.68 .19 290/.5)}.btn-accent{background:var(--accent);color:var(--bg-deep);border:none;border-radius:var(--radius-sm);padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-accent:hover{background:var(--accent-hover)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-ghost);font-size:13.5px}.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table-wrap.scrollx{overflow-x:auto}.table-wrap.no-clip{overflow:visible}.table-wrap.no-clip>.t-row:first-child{border-radius:var(--radius) var(--radius) 0 0}.table-wrap.no-clip>.t-row:last-child{border-radius:0 0 var(--radius) var(--radius)}.t-row{display:grid;padding:14px 18px;font-size:13px;border-bottom:1px solid var(--border-soft);align-items:center}.t-head{padding:12px 18px;font-size:11.5px;font-weight:600;color:var(--text-fainter);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border)}.t-row:last-child{border-bottom:none}.t-row.clickable{cursor:pointer}.t-row.clickable:hover{background:oklch(.26 .02 258)}.t-row.selected{background:oklch(.68 .19 290/.14);box-shadow:inset 2px 0 0 var(--accent)}.t-row.selected:hover{background:oklch(.68 .19 290/.18)}.t-dim{color:var(--text-muted)}.t-strong{font-weight:600}.t-head button{all:unset;cursor:pointer}.t-head button:hover{color:var(--text)}.concerts-section-divider{display:flex;align-items:center;gap:10px;width:-moz-fit-content;width:fit-content;margin:4px 0 4px 4px;font-size:13px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.concerts-section-divider-count{margin-left:2px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:none;background:var(--bg-panel);color:var(--text-faint)}.load-more-btn{display:block;width:-moz-fit-content;width:fit-content;margin:14px auto;text-align:center;background:transparent;border:none;border-radius:999px;padding:8px 18px;font-size:12.5px;font-weight:600;color:var(--text-faint);cursor:pointer}.load-more-btn:hover{color:var(--text)}.glow .load-more-btn:hover{color:oklch(.85 .1 330)}.row-actions{display:flex;gap:10px;justify-content:flex-end}.row-action-link{all:unset;cursor:pointer;font-size:12px}.row-action-link.edit{color:var(--accent-text)}.row-action-link.del{color:var(--red)}.row-delete-btn{all:unset;cursor:pointer;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;flex:none;color:var(--text-fainter)}.row-delete-btn:hover{background:oklch(.68 .18 25/.16);color:var(--red)}.row-rs-btn{all:unset;cursor:pointer;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;flex:none;color:var(--text-fainter)}.row-rs-btn:hover{background:oklch(.68 .19 290/.16);color:var(--accent-text)}.row-rs-btn:disabled{opacity:.3;cursor:default;pointer-events:none}.cf-head-close{all:unset;cursor:pointer;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;flex:none;color:var(--text-fainter);font-size:18px}.cf-head-close:hover{background:oklch(.68 .19 290/.16);color:var(--accent-text)}.cf-share-menu-wrap{position:relative}.cf-share-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);z-index:20;padding-top:8px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}.cf-share-menu-wrap:focus-within .cf-share-menu,.cf-share-menu-wrap:hover .cf-share-menu{opacity:1;visibility:visible;pointer-events:auto}.cf-share-menu-panel{display:flex;gap:8px;padding:10px;background:var(--bg-card-2);border:1px solid var(--border-input);border-radius:var(--radius-sm);box-shadow:0 12px 32px rgba(0,0,0,.4)}.cf-share-menu-btn{all:unset;cursor:pointer;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;flex:none;color:var(--text-dim);background:var(--bg-deep);border:1px solid var(--border-input)}.cf-share-menu-btn[title=Instagram]:hover{color:#E1306C;border-color:#E1306C}.cf-share-menu-btn[title=WhatsApp]:hover{color:#25D366;border-color:#25D366}.cf-nav-edge-btn{all:unset;cursor:pointer;box-sizing:border-box;flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:oklch(.24 .02 258/.9);border:1px solid var(--border-input);color:var(--text-dim)}.cf-nav-edge-btn:hover{background:oklch(.68 .19 290/.22);color:var(--accent-strong)}.cf-nav-edge-btn:disabled{opacity:.25;cursor:default;pointer-events:none}.row-rs-btn.rs-complete{color:oklch(.7 .16 155)}.row-rs-btn.rs-complete:hover{background:oklch(.72 .15 155/.16);color:oklch(.78 .15 155)}.rs-btn-group{display:flex;align-items:center;justify-content:center;gap:4px}.concerts-cols{grid-template-columns:100px 1.2fr .9fr .9fr .9fr .8fr 92px 90px 34px;min-width:870px}.contactes-cols{grid-template-columns:1.2fr 1fr 1.1fr 1fr 1.3fr 34px;min-width:760px}.fact-cols{grid-template-columns:1fr 1.3fr 1fr 1fr .9fr 40px;min-width:600px}.db-cols{grid-template-columns:70px 135px 1.2fr 1fr 1fr .9fr .9fr .9fr 110px;min-width:960px}.db-cols>*{text-align:center;justify-self:center}.db-cols .db-amount-wrap,.db-cols .db-cell-input,.db-cols .db-date-wrap,.db-cols .status-cycle-btn{justify-self:stretch;width:100%}.db-cols .db-cell-input{text-align:center}.db-cols .row-actions{justify-self:end;width:auto}.db-date-btn{cursor:pointer;text-align:center}.bands-cols{grid-template-columns:1.3fr 1.4fr .9fr .8fr .8fr;min-width:640px}.bands-cols>*{text-align:center;justify-self:center}.bands-cols .db-amount-wrap,.bands-cols .db-cell-input{justify-self:stretch;width:100%}.bands-cols .db-cell-input{text-align:center}.db-tags-cell{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.clients-cols{grid-template-columns:1.2fr .8fr 1.1fr 1.4fr .9fr .9fr .9fr;min-width:920px}.clients-cols>*{text-align:center;justify-self:center}.db-view-toggle{display:flex;gap:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;flex:none}.db-view-btn{all:unset;cursor:pointer;box-sizing:border-box;padding:7px 14px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--text-dim)}.db-view-btn.active{background:var(--accent);color:var(--bg-deep)}.db-view-btn:not(.active):hover{color:var(--text)}.band-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:14px;gap:14px}.band-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;cursor:pointer;overflow:hidden}.band-card:hover{border-color:oklch(.68 .19 290/.5)}.band-photo{display:block;width:calc(100% + 36px);max-width:none;height:92px;object-fit:cover;margin:-18px -18px 12px}.band-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:8px}.band-name{font-family:Space Grotesk,sans-serif;font-size:15.5px;font-weight:600}.band-meta{font-size:12px;color:var(--text-faint);margin-bottom:10px}.band-foot{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;border-top:1px solid var(--border-soft);padding-top:10px}.band-foot-label{color:var(--text-faint)}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;padding:8px 0}.page-btn{background:var(--bg-card);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:7px 14px;color:var(--text);font-size:12.5px;cursor:pointer}.page-btn:disabled{opacity:.4;cursor:default}.page-label{font-size:12.5px;color:var(--text-faint)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:oklch(.145 .02 258/.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);display:none;padding:8px 4px calc(8px + env(safe-area-inset-bottom));z-index:20}.bottom-nav-item{flex:1 1;min-width:0;background:transparent;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 1px;cursor:pointer;color:var(--text-faint)}.bottom-nav-label{font-size:9.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:40;display:flex;align-items:center;justify-content:center;gap:18px;padding:20px}.modal{width:420px;max-width:100%;max-height:88vh;overflow:auto;background:oklch(.2 .02 258);border:1px solid var(--border-input);border-radius:14px;padding:24px;color:var(--text)}.modal.wide{width:440px}.cf-confirm-overlay{z-index:55}.cf-confirm-modal{width:320px;text-align:center}.cf-confirm-message{font-size:14px;color:var(--text);margin-bottom:18px}.cf-confirm-actions{justify-content:center;margin-top:0}.modal.band-edit-modal{width:620px;max-width:95vw}.modal.narrow{width:400px}.modal.rs-modal{width:640px}.modal.concert-modal{width:680px;max-width:95vw}.cf-saving-indicator{font-size:11.5px;color:var(--text-faint);font-weight:500}.cf-rs-tab-wrap{position:relative;flex:1 1;display:flex}.cf-rs-tab-wrap button{width:100%}.cf-rs-warning-badge{position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;white-space:nowrap;padding:3px 8px;border-radius:20px;background:oklch(.78 .15 80/.18);color:oklch(.82 .15 80);font-size:10px;font-weight:700;border:1px solid oklch(.78 .15 80/.35)}.cf-delete-btn{align-self:flex-end;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;background:oklch(.58 .2 25);color:white;border:none;border-radius:var(--radius-sm);padding:6px 12px;font-size:11.5px;font-weight:600;cursor:pointer}.cf-delete-btn:hover{background:oklch(.54 .2 25)}.modal.share-story-modal{width:720px;max-width:95vw}.share-story-preview-wrap{position:relative;flex:none;height:min(64vh,640px);aspect-ratio:1080/1920;border-radius:12px;overflow:hidden;background:repeating-conic-gradient(#2a2a33 0 25%,#232329 0 50%) 0 0 /20px 20px}.share-story-canvas{display:block;width:100%;height:100%;object-fit:contain}.share-story-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--text-faint);background:oklch(.15 .01 258/.6)}.share-story-controls{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:20px;align-self:stretch}.share-story-flag{display:inline-flex;flex:none;width:18px;height:18px;border-radius:4px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.45)}.share-story-flag svg{display:block;width:100%;height:100%}.share-story-map-select{position:relative;margin-top:6px}.share-story-map-select-trigger,.share-story-map-tile.active{background:oklch(.68 .19 290/.18);border-color:oklch(.68 .19 290/.5);color:var(--text)}.share-story-map-select-trigger{display:flex;align-items:center;gap:8px;width:100%;border:1px solid oklch(.68 .19 290/.5);border-radius:var(--radius-sm);padding:7px 10px;font-size:11.5px;font-weight:600;cursor:pointer}.share-story-map-select-label{flex:1 1;text-align:left}.share-story-map-select-chevron{flex:none;color:var(--text-faint)}.share-story-map-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:6px;gap:6px;padding:8px;background:var(--bg-card-2);border:1px solid var(--border-input);border-radius:var(--radius-sm);box-shadow:0 12px 32px rgba(0,0,0,.4)}.share-story-map-tile{display:flex;align-items:center;gap:5px;padding:7px 6px;border-radius:var(--radius-sm);border:1px solid var(--border-input);background:transparent;color:var(--text-muted);font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.share-story-colors{display:flex;gap:10px;margin-top:6px}.share-story-color-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;box-sizing:border-box}.share-story-color-swatch.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.share-story-pinpad{flex-direction:column;margin-top:6px;width:-moz-fit-content;width:fit-content}.share-story-pinpad,.share-story-pinpad-row{display:flex;gap:4px}.share-story-pinpad-row span{width:32px;height:32px;flex:none}.share-story-pinpad .row-rs-btn{width:32px;height:32px;background:var(--bg-card-2);border:1px solid var(--border-input)}.share-story-pads-row{display:flex;gap:24px;margin-top:12px}.share-story-pad-center{width:32px;height:32px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--text-faint)}.modal-tabs{position:relative;display:flex;background:var(--bg-card-2);border:1px solid var(--border-input);border-radius:10px;padding:3px;margin-bottom:16px}.modal-tabs-indicator{position:absolute;top:3px;bottom:3px;left:3px;z-index:0;width:calc((100% - 6px) / 3);background:linear-gradient(135deg,oklch(.66 .25 330),oklch(.58 .23 295));box-shadow:0 4px 14px -4px oklch(.6 .27 330/.55);border-radius:7px;transition:transform .4s cubic-bezier(.16,1,.3,1);pointer-events:none}.modal-tabs .cf-rs-tab-wrap,.modal-tabs button{position:relative;z-index:1}.modal-tabs button{flex:1 1;border:none;background:transparent;cursor:pointer;padding:8px 10px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--text-muted);transition:color .15s ease}.modal-tabs button.active{color:oklch(.99 .01 330)}.cf-view-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px 14px;gap:16px 14px}.cf-view-value{margin-top:4px;font-size:14px;font-weight:600;color:var(--text)}.member-row-btn{background:transparent;border:none;padding:0;text-align:left;cursor:pointer;display:block;width:100%;font-family:inherit}.member-row-btn:hover{color:oklch(.68 .19 290)}.modal.rs-doc-modal{width:900px;max-width:95vw;padding:0;overflow:hidden;display:flex;flex-direction:column}.rs-doc-top-toolbar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:oklch(.2 .02 258);flex:none}.rs-doc-icon-btn{all:unset;cursor:pointer;box-sizing:border-box;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:oklch(.98 .002 258/.94);color:oklch(.3 .01 258);box-shadow:0 2px 8px rgba(0,0,0,.3);font-size:15px}.rs-doc-icon-btn:hover{background:oklch(1 0 0)}.rs-doc-scroll{flex:1 1;min-height:0;overflow-y:auto;background:oklch(.13 .015 258);padding:28px}.rs-doc{width:210mm;min-height:297mm;box-sizing:border-box;margin:0 auto;box-shadow:0 6px 24px rgba(0,0,0,.4)}@media print{@page{size:A4;margin:0}body *{visibility:hidden}#invoice-doc-print,#invoice-doc-print *,#rs-doc-print,#rs-doc-print *{visibility:visible}.modal-overlay{position:static!important;background:none!important;padding:0!important;display:block!important}.modal.rs-doc-modal{position:static!important;width:auto!important;max-width:none!important;max-height:none!important;box-shadow:none!important;border:none!important}.rs-doc-scroll{position:static!important;overflow:visible!important;background:none!important;padding:0!important}#invoice-doc-print,#rs-doc-print{position:static!important;width:210mm!important;min-height:297mm!important;box-shadow:none!important;margin:0!important}.rs-doc-top-toolbar{display:none!important}}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-title{font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:600}.modal-close{all:unset;cursor:pointer;color:var(--text-fainter);font-size:18px}.modal-form{display:flex;flex-direction:column;gap:12px}.wa-share-textarea{background:var(--bg-deep);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:14px;font-size:13.5px;line-height:1.5;color:var(--text);font-family:inherit;resize:vertical;width:100%;box-sizing:border-box}.wa-share-textarea:focus{outline:none;border-color:oklch(.68 .19 290/.6)}.share-story-body{flex-direction:row;align-items:flex-start;gap:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.form-label{font-size:11.5px;color:var(--text-faint)}.form-field{margin-top:4px}.modal-actions{display:flex;gap:10px;margin-top:8px;align-items:center}.btn-outline{border:1px solid oklch(1 0 0/.12);color:var(--text-dim);border-radius:var(--radius-sm)}.btn-danger-outline,.btn-outline{background:transparent;padding:11px 16px;font-size:13px;font-weight:600;cursor:pointer}.btn-danger-outline{border:1px solid oklch(.68 .18 25/.4);color:var(--red);border-radius:var(--radius-sm)}.btn-save{background:var(--accent);color:var(--bg-deep);border:none;border-radius:var(--radius-sm);padding:11px 18px;font-size:13px;font-weight:600;cursor:pointer}.spacer{flex:1 1}.rs-section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.03em;margin-top:8px;margin-bottom:10px;padding-top:16px;border-top:1px solid var(--border-soft)}.rs-section-title:first-child{margin-top:0;padding-top:0;border-top:none}.rs-phase-header{display:grid;grid-template-columns:18px 1.4fr .85fr .85fr auto;grid-gap:8px;gap:8px;align-items:center}.rs-phase-header>span:first-child{grid-column:1/span 2}.rs-col-label{font-size:10px;font-weight:600;color:var(--text-fainter);text-transform:uppercase;letter-spacing:.03em}.rs-phase-header .rs-col-label{text-align:center}.rs-repeater{display:flex;flex-direction:column;gap:8px}.rs-field-row{display:grid;grid-template-columns:18px 1fr 1fr 22px;grid-gap:8px;gap:8px;align-items:center}.rs-repeater[data-rs-section=lloc] .rs-field-row{grid-template-columns:18px .6fr 1.4fr 22px}.rs-hotel-subgroup{border:1px solid var(--border-input);border-radius:10px;padding:10px 12px 12px;margin-top:4px;flex-direction:column}.rs-hotel-subgroup,.rs-hotel-subgroup-row{display:flex;gap:8px}.rs-hotel-subgroup-row>*{flex:1 1;min-width:0}.rs-hotel-subgroup .rs-hotel-specs-row{margin-left:0;margin-top:0}.rs-attached-row{display:grid;grid-template-columns:18px 1fr 1fr 22px;grid-gap:8px;gap:8px;margin-top:-2px}.rs-attached-row input{grid-column:2/span 3}.rs-toggle-pill{all:unset;cursor:pointer;box-sizing:border-box;flex:none;display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:20px;font-size:12px;font-weight:600}.rs-toggle-pill.yes{background:oklch(.72 .15 155/.16);color:oklch(.75 .15 155)}.rs-toggle-pill.no{background:oklch(.68 .18 25/.16);color:var(--red)}.rs-toggle-pill-fixed{min-width:112px;justify-content:space-between}.rs-hotel-parking-row{display:flex;align-items:center;gap:8px;margin-top:8px}.rs-parking-count{flex:1 1;min-width:0}.rs-hotel-parking-row .rs-time-pair{width:110px;flex:none}.cf-convocatoria-list{display:flex;flex-direction:column;gap:6px}.cf-convocat-row{box-sizing:border-box;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-card);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:9px 12px;font-size:13px;color:var(--text)}.cf-convocat-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.cf-convocat-controls{display:flex;align-items:center;gap:8px;flex:none}.cf-attend-btn{all:unset;cursor:pointer;box-sizing:border-box;flex:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.cf-attend-btn.yes{background:oklch(.72 .15 155/.16);color:oklch(.75 .15 155)}.cf-attend-btn.yes:hover{background:oklch(.72 .15 155/.3)}.cf-attend-btn.no{background:oklch(.68 .18 25/.16);color:var(--red)}.cf-attend-btn.no:hover{background:oklch(.68 .18 25/.3)}.cf-convocat-row.cf-convocat-yes{cursor:pointer;background:oklch(.72 .15 155/.14);border-color:oklch(.72 .15 155/.4);color:oklch(.8 .15 155)}.cf-convocat-row.cf-convocat-no{cursor:pointer;background:oklch(.68 .18 25/.1);border-color:oklch(.68 .18 25/.35);color:var(--red)}.cf-substitute-row{display:flex;align-items:center;gap:8px;margin:-3px 0 3px 14px;border-left:2px dashed var(--border);padding:6px 10px 6px 12px}.cf-substitute-input{flex:1 1;min-width:0}.cf-substitute-role{font-size:12px;color:var(--text-fainter);white-space:nowrap;flex:none}.cf-substitute-none-btn{all:unset;cursor:pointer;box-sizing:border-box;flex:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-fainter);background:oklch(1 0 0/.05)}.cf-substitute-none-btn:hover{background:oklch(.68 .18 25/.16);color:var(--red)}.rs-hotel-specs-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 14px;margin-top:6px;margin-left:26px}.rs-hotel-checkinout-item{display:flex;flex-direction:column;gap:4px}.rs-hotel-checkinout-item .rs-time-pair{width:110px}.rs-contact-row{grid-template-columns:18px 1fr 1fr 1fr 1fr auto;grid-gap:8px}.rs-contact-row,.rs-phase-row{display:grid;gap:8px;align-items:center}.rs-phase-row{grid-template-columns:18px 1.4fr .85fr .85fr auto;grid-gap:8px}.rs-time-pair{display:flex;align-items:center}.rs-time-box{width:100%;min-width:0;color-scheme:dark;font-family:inherit}.rs-time-box::-webkit-calendar-picker-indicator{filter:invert(74%) sepia(23%) saturate(1000%) hue-rotate(215deg) brightness(1.15);cursor:pointer;opacity:.9;border-radius:4px}.rs-time-box::-webkit-calendar-picker-indicator:hover{opacity:1}.rs-drag-handle{cursor:-webkit-grab;cursor:grab;display:flex;align-items:center;justify-content:center;width:18px;height:26px;color:var(--text-fainter);flex:none;touch-action:none}.rs-drag-handle:hover{color:var(--text-dim)}.rs-drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.rs-contact-row.rs-dragging,.rs-field-row.rs-dragging,.rs-phase-row.rs-dragging{opacity:.5;outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.rs-mini-btn{all:unset;cursor:pointer;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;flex:none;color:var(--text-fainter)}.rs-mini-btn:hover{background:oklch(1 0 0/.08);color:var(--text)}.rs-mini-btn.danger:hover{background:oklch(.68 .18 25/.16);color:var(--red)}.rs-mini-btn:disabled{opacity:.25;cursor:default}.rs-mini-btn:disabled:hover{background:transparent;color:var(--text-fainter)}.rs-add-btn{all:unset;cursor:pointer;color:var(--accent-text);font-size:12.5px;font-weight:600;margin-top:-2px;align-self:flex-start}.rs-add-btn:hover{color:var(--accent-hover)}.band-modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin:-24px -24px 16px;padding:18px 24px;min-height:96px;box-sizing:border-box;border-radius:14px 14px 0 0;background-size:cover;background-position:50%}.band-modal-name{font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:700;color:white;text-shadow:0 1px 4px rgba(0,0,0,.5)}.band-modal-head .modal-close{color:white}.member-avatar{width:92px;height:92px;border-radius:50%;object-fit:cover;border:1px solid var(--border-input);flex:none}.member-profile-modal{width:580px;padding:32px}.band-info-view{display:flex;flex-direction:column;gap:20px}.invoice-preview{background:var(--bg-deep);border-radius:var(--radius-sm);padding:12px;font-size:12.5px;display:flex;justify-content:space-between}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:oklch(.24 .02 258);border:1px solid var(--border-input);color:var(--text);padding:12px 20px;border-radius:10px;font-size:13px;z-index:60;box-shadow:0 12px 30px -8px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translateX(-50%) translateY(-6px)}@media (max-width:899px){.mobile-topbar{display:flex}.content{padding:18px 18px 90px}.page-header{display:none}.bottom-nav{display:flex}.band-grid,.chart-grid{grid-template-columns:1fr}.desktop-only{display:none!important}.modal-overlay:has(.rs-doc-modal){padding:0}.modal.rs-doc-modal{width:100vw;max-width:100vw;height:100%;max-height:100%;border-radius:0}.rs-doc-scroll{padding:10px}.rs-doc{zoom:calc((100vw - 20px) / 794px)}}@media (min-width:900px){.mobile-only{display:none!important}.cal-cols{flex-wrap:nowrap;justify-content:center}.cal-left-col{flex:1 1 560px;min-width:320px;max-width:560px}.cal-grid-panel{width:100%;box-sizing:border-box;padding:18px}.cal-day{font-size:13.5px;padding:8px 5px}.cal-right-col{flex:1 1 420px;min-width:280px;max-width:520px}.cal-side-panel{flex:1 1;min-height:0;box-sizing:border-box;overflow-y:auto}.cal-cols-week .cal-left-col{flex:1 1 auto;max-width:none;width:100%}}.glow{position:relative;padding-top:4px}.glow-blooms{display:none}.glow .concerts-filterbar,.glow .contactes-filterbar,.glow .db-filterbar,.glow .facturacio-filterbar,.glow .grups-filterbar{background:oklch(1 0 0/.04);border:1px solid oklch(1 0 0/.09);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:999px;padding:8px 8px 8px 20px;margin-bottom:20px}.glow .concerts-filterbar .input,.glow .contactes-filterbar .input,.glow .db-filterbar .input,.glow .facturacio-filterbar .input,.glow .grups-filterbar .input{background:transparent;border:none;color:var(--text);padding:8px 10px}.glow .concerts-filterbar .input.search,.glow .contactes-filterbar .input.search,.glow .db-filterbar .input.search,.glow .facturacio-filterbar .input.search,.glow .grups-filterbar .input.search{min-width:200px}.glow .input:focus,.glow select.input:focus{outline:none}.glow select.input{background:oklch(1 0 0/.05);border:1px solid oklch(1 0 0/.1);border-radius:999px}.glow-cta{background:linear-gradient(135deg,oklch(.66 .25 330),oklch(.58 .23 295));color:oklch(.99 .01 330);border:none;border-radius:999px;padding:11px 22px;font-size:13.5px;font-weight:700;letter-spacing:-.01em;cursor:pointer;white-space:nowrap;box-shadow:0 10px 28px -8px oklch(.6 .27 330/.6);transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s cubic-bezier(.16,1,.3,1)}.glow-cta:hover{transform:translateY(-1px);box-shadow:0 14px 34px -8px oklch(.6 .27 330/.75)}.glow-cta:active{transform:translateY(0)}.glow-cta:focus-visible{outline:2px solid oklch(.75 .2 330);outline-offset:2px}.glow .table-wrap{background:oklch(1 0 0/.035);border:1px solid oklch(1 0 0/.08);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:20px;box-shadow:0 24px 60px -24px rgba(0,0,0,.65)}.glow .t-head{background:oklch(1 0 0/.03)}.glow .t-head.concerts-cols,.glow .t-head.contactes-cols{background:var(--bg-card);border-color:oklch(1 0 0/.09);box-shadow:0 12px 30px -14px rgba(0,0,0,.6)}.glow .t-row.clickable:hover{background:oklch(.6 .27 330/.09)}.glow .t-row.selected{background:oklch(.6 .27 330/.16);box-shadow:inset 2px 0 0 oklch(.66 .25 330)}.glow .t-row.selected:hover{background:oklch(.6 .27 330/.2)}.glow .concerts-section-divider{color:oklch(.85 .1 330)}.glow .concerts-section-divider-count{background:linear-gradient(135deg,oklch(.66 .25 330),oklch(.58 .23 295));color:oklch(.99 .01 330);box-shadow:0 4px 12px -5px oklch(.6 .27 330/.6)}.glow .badge,.glow .badge-btn{box-shadow:0 0 0 1px currentColor,0 0 5px -3px currentColor}.glow .pill.active{background:oklch(.6 .27 330/.18);border-color:oklch(.6 .27 330/.5);color:oklch(.88 .1 330)}.glow .cal-grid-panel,.glow .cal-side-panel,.glow .card{background:oklch(1 0 0/.035);border:1px solid oklch(1 0 0/.08);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 16px 40px -20px rgba(0,0,0,.6)}.glow .db-view-toggle{background:transparent;border:none;padding:0;gap:6px}.glow .db-view-btn{border-radius:999px;padding:8px 16px}.glow .db-view-btn.active{background:linear-gradient(135deg,oklch(.66 .25 330),oklch(.58 .23 295));color:oklch(.99 .01 330)}.glow .band-card{background:oklch(1 0 0/.035);border:1px solid oklch(1 0 0/.08);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 16px 40px -20px rgba(0,0,0,.6);transition:transform .16s cubic-bezier(.16,1,.3,1),border-color .16s ease}.glow .band-card:hover{transform:translateY(-2px);border-color:oklch(.6 .27 330/.5)}.glow-card{background:oklch(1 0 0/.035);border:1px solid oklch(1 0 0/.08);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:20px;box-shadow:0 24px 60px -24px rgba(0,0,0,.65)}.glow ::selection{background:oklch(.6 .27 330/.35);color:var(--text)}.glow ::-webkit-scrollbar{width:10px;height:10px}.glow ::-webkit-scrollbar-thumb{background:oklch(.6 .27 330/.35);border-radius:999px}.glow ::-webkit-scrollbar-thumb:hover{background:oklch(.6 .27 330/.55)}.glow ::-webkit-scrollbar-track{background:transparent}@media (max-width:640px){.glow-blooms{height:320px}.glow .concerts-filterbar,.glow .contactes-filterbar,.glow .db-filterbar,.glow .facturacio-filterbar,.glow .grups-filterbar{border-radius:20px;padding:10px}}.auth-box{position:relative;display:flex;flex-direction:column;align-items:center}.auth-box .login-logo-row{margin-bottom:24px}.landing{min-height:100vh;background:var(--bg-deep);overflow:hidden;flex-direction:column}.landing,.landing-header{position:relative;display:flex}.landing-header{z-index:2;align-items:center;justify-content:space-between;padding:22px clamp(20px,6vw,64px)}.landing-logo{height:30px;width:auto}.landing-nav{display:flex;align-items:center;gap:18px}.landing-link{color:var(--text-muted);font-size:14px;font-weight:500}.landing-link:hover{color:var(--text)}.landing-cta-sm{padding:9px 16px;font-size:13.5px;display:inline-block}.landing-hero{position:relative;z-index:1;text-align:center;padding:clamp(48px,9vh,96px) 20px 24px;max-width:860px;margin:0 auto}.landing-hero h1{font-family:Space Grotesk,Inter,sans-serif;font-size:clamp(30px,5.4vw,52px);line-height:1.12;font-weight:700;letter-spacing:-.02em;margin:0 0 20px}.landing-accent{background:linear-gradient(90deg,oklch(.74 .18 290),oklch(.72 .2 330));-webkit-background-clip:text;background-clip:text;color:transparent}.landing-sub{font-size:clamp(15px,2vw,17.5px);color:var(--text-muted);line-height:1.6;max-width:640px;margin:0 auto 30px}.landing-hero-cta{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.landing-cta{padding:14px 28px;font-size:15.5px;display:inline-block}.landing-cta-secondary{padding:13px 24px;font-size:14.5px;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border-input);color:var(--text);display:inline-block}.landing-cta-secondary:hover{border-color:oklch(.68 .19 290/.6);color:var(--text)}.landing-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:14px;gap:14px;margin-top:44px;text-align:left}.landing-role-card{background:oklch(1 0 0/.035);border:1px solid oklch(1 0 0/.08);border-radius:16px;padding:20px 22px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.landing-role-title{font-weight:700;font-size:15px;margin-bottom:6px;color:var(--accent-text)}.landing-role-card p{margin:0;font-size:13.5px;color:var(--text-muted);line-height:1.55}.landing-features{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:14px;gap:14px;max-width:1040px;margin:40px auto 0;padding:0 clamp(20px,5vw,40px);width:100%}.landing-feature{background:oklch(1 0 0/.03);border:1px solid var(--border-soft);border-radius:16px;padding:20px}.landing-feature-icon{color:var(--accent-text);margin-bottom:12px}.landing-feature-title{font-weight:600;font-size:14.5px;margin-bottom:6px}.landing-feature p{margin:0;font-size:13px;color:var(--text-muted);line-height:1.55}.landing-footer{position:relative;text-align:center;font-size:12px;color:oklch(.45 .015 258);padding:48px 20px 28px;margin-top:auto}.onboarding-screen{min-height:100vh;background:var(--bg-deep);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 18px}.onboarding-card{position:relative;width:560px;max-width:94vw;padding:36px 34px;background:oklch(.145 .02 258/.6);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:1px solid oklch(1 0 0/.1);border-radius:18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}.onboarding-title{font-family:Space Grotesk,Inter,sans-serif;font-size:22px;font-weight:700;margin:0 0 6px}.onboarding-sub{font-size:13.5px;color:var(--text-muted);margin:0 0 24px;line-height:1.5}.role-cards{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}@media (max-width:560px){.role-cards{grid-template-columns:1fr}}.role-card{text-align:left;cursor:pointer;background:oklch(1 0 0/.035);border:1px solid var(--border-input);border-radius:14px;padding:20px 18px;color:var(--text);transition:border-color .15s,background .15s}.role-card:hover{border-color:oklch(.68 .19 290/.7);background:oklch(.68 .19 290/.08)}.role-card-icon{color:var(--accent-text);margin-bottom:10px}.role-card-title{font-weight:700;font-size:15.5px;margin-bottom:5px}.role-card-desc{font-size:12.5px;color:var(--text-muted);line-height:1.5}.onboarding-form{display:flex;flex-direction:column;gap:16px}.onboarding-back{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:12.5px;padding:0;text-align:left;margin-bottom:4px}.onboarding-back:hover{color:var(--text)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.instrument-chip{display:inline-flex;align-items:center;gap:6px;background:oklch(.68 .19 290/.14);color:var(--accent-text);border:1px solid oklch(.68 .19 290/.3);border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:500}.instrument-chip img{width:16px;height:16px;object-fit:contain}.instrument-chip button{background:none;border:none;color:inherit;cursor:pointer;padding:0;font-size:13px;line-height:1;opacity:.7}.instrument-chip button:hover{opacity:1}.color-row{display:flex;gap:16px}.color-field{display:flex;align-items:center;gap:10px;flex:1 1}.color-field input[type=color]{width:42px;height:34px;padding:2px;border-radius:8px;border:1px solid var(--border-input);background:var(--bg-deep);cursor:pointer}.logo-upload-row{display:flex;align-items:center;gap:14px}.logo-preview{width:64px;height:64px;border-radius:14px;object-fit:cover;border:1px solid var(--border-input);background:var(--bg-deep)}.logo-preview-empty{width:64px;height:64px;border-radius:14px;border:1px dashed var(--border-input);display:flex;align-items:center;justify-content:center;color:var(--text-ghost);font-size:11px;text-align:center}.invite-row{display:flex;gap:8px}.invite-row .field-input{flex:1 1}.btn-icon-ghost{background:none;border:1px solid var(--border-input);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:0 12px;font-size:15px}.btn-icon-ghost:hover{color:var(--text);border-color:oklch(.68 .19 290/.6)}.btn-ghost-sm{background:none;border:1px dashed var(--border-input);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:9px 12px;font-size:13px;width:100%}.btn-ghost-sm:hover{color:var(--text);border-color:oklch(.68 .19 290/.6)}.join-code-box{display:flex;flex-direction:column;align-items:center;gap:6px;background:oklch(.68 .19 290/.1);border:1px solid oklch(.68 .19 290/.3);border-radius:14px;padding:18px;margin:8px 0 4px}.join-code-value{font-family:Space Grotesk,monospace;font-size:30px;font-weight:700;letter-spacing:6px;color:var(--accent-strong)}.join-code-label{font-size:12px;color:var(--text-muted)}.onboarding-error{font-size:12.5px;color:var(--red);min-height:16px}.artist-gig-list{display:flex;flex-direction:column;gap:12px}.artist-gig-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border-soft);border-radius:16px;padding:16px 18px}.artist-gig-date{flex:none;width:58px;text-align:center;background:oklch(.68 .19 290/.12);border-radius:12px;padding:8px 4px}.artist-gig-date .d{font-family:Space Grotesk,Inter,sans-serif;font-size:20px;font-weight:700;line-height:1.1}.artist-gig-date .m{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.artist-gig-main{flex:1 1;min-width:180px}.artist-gig-title{font-weight:600;font-size:15px;margin-bottom:3px}.artist-gig-meta{font-size:12.5px;color:var(--text-muted)}.artist-gig-band{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;border-radius:999px;padding:4px 11px 4px 5px}.artist-gig-band img{width:20px;height:20px;border-radius:50%;object-fit:cover}.attendance-btns{display:flex;gap:8px}.attendance-btn{border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border-input);background:none;color:var(--text-muted);transition:all .15s}.attendance-btn:hover{color:var(--text)}.attendance-btn.yes.active{background:oklch(.7 .17 155/.16);border-color:oklch(.7 .17 155/.5);color:oklch(.78 .15 155)}.attendance-btn.no.active{background:oklch(.66 .2 20/.14);border-color:oklch(.66 .2 20/.5);color:oklch(.75 .16 20)}.artist-band-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:14px;gap:14px}.artist-band-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:18px;overflow:hidden}.artist-band-banner{height:64px}.artist-band-body{padding:0 16px 16px;margin-top:-26px}.artist-band-logo{width:52px;height:52px;border-radius:14px;object-fit:cover;border:2px solid var(--bg-card);background:var(--bg-deep);display:block}.artist-band-name{font-weight:700;font-size:15.5px;margin:8px 0 2px}.artist-band-meta{font-size:12.5px;color:var(--text-muted)}.invite-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:oklch(.68 .19 290/.08);border:1px solid oklch(.68 .19 290/.3);border-radius:16px;padding:14px 16px}.invite-card-main{flex:1 1;min-width:160px}.invite-card-title{font-weight:600;font-size:14.5px}.invite-card-sub{font-size:12.5px;color:var(--text-muted)}.join-code-form{display:flex;gap:10px;max-width:420px}.join-code-form .field-input{text-transform:uppercase;letter-spacing:3px;font-weight:600}.artist-empty{text-align:center;color:var(--text-muted);font-size:14px;padding:48px 20px;border:1px dashed var(--border-input);border-radius:18px}.artist-section-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin:26px 0 12px}.artist-section-title:first-child{margin-top:0}.brand-lockup{display:inline-flex;align-items:center;gap:9px}.brand-mark{height:26px;width:auto;flex:none}.brand-name{font-family:Space Grotesk,Inter,sans-serif;font-size:13.5px;font-weight:600;letter-spacing:.32em;color:oklch(.78 .1 275);transform:translateY(1px)}.mobile-topbar .brand-mark{height:22px}.mobile-topbar .brand-name{font-size:12px}.instr-panel,.instr-picker{display:flex;flex-direction:column}.instr-panel{margin-top:8px;max-height:264px;overflow-y:auto;border:1px solid var(--border-input);border-radius:12px;padding:12px;gap:12px;background:oklch(.135 .02 258/.4)}.instr-cat-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:7px}.instr-grid{display:flex;flex-wrap:wrap;gap:6px}.instr-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:12.5px;font-weight:500;border:1px solid var(--border-input);background:none;color:var(--text-muted);cursor:pointer;transition:all .12s}.instr-pill svg{color:var(--accent-text);opacity:.85;flex:none}.instr-pill:hover{color:var(--text);border-color:oklch(.68 .19 290/.55)}.instr-pill.active{background:oklch(.68 .19 290/.16);border-color:oklch(.68 .19 290/.6);color:var(--accent-strong)}.instr-pill.active svg{opacity:1}.instr-panel::-webkit-scrollbar{width:8px}.instr-panel::-webkit-scrollbar-thumb{background:oklch(.68 .19 290/.3);border-radius:999px}.instr-panel::-webkit-scrollbar-track{background:transparent}