*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #09090b;--color-panel: #18181b;--color-border: #27272a;--color-border-hover: #3f3f46;--color-brand: #f97316;--color-brand-hover: #ea580c;--color-text-main: #f4f4f5;--color-text-muted: #a1a1aa;--color-text-darker: #71717a;--color-success-bg: #052e16;--color-success-text: #22c55e;--color-warning-bg: #422006;--color-warning-text: #f59e0b;--color-error-bg: #450a0a;--color-error-text: #ef4444;--color-info-bg: #1e1b4b;--color-info-text: #818cf8}body{font-family:Inter,sans-serif;background:radial-gradient(circle at 85% 10%,rgba(249,115,22,.06),transparent 50%),var(--color-bg);color:var(--color-text-main);min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.login-overlay{position:fixed;inset:0;background:#09090bd9;backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;z-index:1000;transition:opacity .3s ease}.login-box{background:#18181bb3;backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.05);border-radius:20px;padding:48px 40px;max-width:440px;width:90%;text-align:center;box-shadow:0 30px 60px -15px #000c;position:relative;overflow:hidden}.login-box:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--color-brand),transparent)}.login-box h1{font-family:Oswald,sans-serif;font-size:34px;color:#fff;text-transform:uppercase;margin-bottom:8px;letter-spacing:.5px}.login-box h1 span{color:var(--color-brand)}.login-box p{color:var(--color-text-muted);font-size:14px;margin-bottom:32px}.login-box input{width:100%;padding:14px 18px;background:#09090b99;border:1px solid var(--color-border);border-radius:10px;color:#fff;font-size:16px;outline:none;margin-bottom:20px;transition:border-color .2s,box-shadow .2s}.login-box input:focus{border-color:var(--color-brand);box-shadow:0 0 0 2px #f9731626}.login-box button{width:100%;padding:14px;background:var(--color-brand);color:#fff;border:none;border-radius:10px;font-family:Oswald,sans-serif;font-size:18px;text-transform:uppercase;cursor:pointer;font-weight:700;letter-spacing:.5px;transition:all .2s;box-shadow:0 4px 12px #f9731633}.login-box button:hover{background:var(--color-brand-hover);box-shadow:0 6px 16px #f973164d}.login-error{color:var(--color-error-text);background:#450a0a66;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:10px;font-size:13px;margin-top:16px;display:none}.admin-container{display:none;flex-direction:column;flex-grow:1}.admin-container.visible{display:flex}header{background:#18181bb3;backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.03);padding:20px 32px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}header .brand{display:flex;align-items:center;gap:20px}header h1{font-family:Oswald,sans-serif;font-size:22px;color:#fff;text-transform:uppercase;font-weight:700;letter-spacing:.5px}header h1 span{color:var(--color-brand)}header .back-btn{color:var(--color-text-muted);text-decoration:none;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);padding:6px 12px;border-radius:8px;transition:all .2s}header .back-btn:hover{color:#fff;background:#ffffff14;border-color:#ffffff1a}header .logout{color:var(--color-text-muted);cursor:pointer;font-size:13px;font-weight:600;background:#ef444414;border:1px solid rgba(239,68,68,.15);color:#fca5a5;padding:6px 14px;border-radius:8px;transition:all .2s}header .logout:hover{background:#ef44442e;color:#fff}.content{max-width:1700px;margin:0 auto;padding:32px;width:100%;animation:fadeInUp .4s cubic-bezier(.16,1,.3,1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.welcome-banner{margin-bottom:40px}.welcome-banner h2{font-family:Oswald,sans-serif;font-size:38px;color:#fff;text-transform:uppercase;font-weight:700;letter-spacing:.5px;margin-bottom:8px}.welcome-banner p{color:var(--color-text-muted);font-size:16px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:40px}.stat-card{background:#18181b99;backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.03);border-radius:16px;padding:24px;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.08),transparent)}.stat-card:hover{transform:translateY(-4px);border-color:#f973164d;box-shadow:0 12px 30px -10px #00000080,0 0 15px #f973160d}.stat-card .label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-muted);margin-bottom:8px;font-weight:700}.stat-card .value{font-family:Oswald,sans-serif;font-size:38px;font-weight:700}.stat-card .value.orange{color:var(--color-brand)}.stat-card .value.green{color:#4ade80}.stat-card .value.yellow{color:#fbbf24}.stat-card .value.blue{color:#818cf8}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-bottom:40px}.portal-card{background:#18181b8c;backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.03);border-radius:20px;padding:32px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;color:inherit;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:0 4px 30px #0003}.portal-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 100% 0%,rgba(249,115,22,.05),transparent 40%);opacity:0;transition:opacity .4s ease}.portal-card:hover{transform:translateY(-6px);border-color:#f9731666;box-shadow:0 20px 40px -15px #0009,0 0 25px #f9731614}.portal-card:hover:before{opacity:1}.portal-card-icon{font-size:32px;background:#f9731614;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:14px;color:var(--color-brand);transition:transform .4s cubic-bezier(.175,.885,.32,1.275)}.portal-card:hover .portal-card-icon{transform:scale(1.1) rotate(5deg);background:#f9731626}.portal-card h3{font-family:Oswald,sans-serif;font-size:24px;color:#fff;text-transform:uppercase;margin-top:16px;margin-bottom:8px;font-weight:700;letter-spacing:.5px;transition:color .3s}.portal-card:hover h3{color:var(--color-brand)}.portal-card p{color:var(--color-text-muted);font-size:14px;line-height:1.6;margin-bottom:24px}.portal-card-footer{display:flex;align-items:center;color:var(--color-text-darker);font-size:13px;font-weight:700;font-family:Oswald,sans-serif;text-transform:uppercase;gap:6px;transition:all .3s}.portal-card:hover .portal-card-footer{color:var(--color-brand);gap:10px}.controls,.toolbar{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap;align-items:center}.controls select,.controls input,.toolbar select,.toolbar input{padding:10px 16px;background:#18181b99;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-main);font-size:14px;outline:none;transition:all .2s ease}.controls select:focus,.controls input:focus,.toolbar select:focus,.toolbar input:focus{border-color:var(--color-brand);box-shadow:0 0 0 2px #f9731626;background:#18181be6}.btn{padding:10px 18px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:8px;font-family:Inter,sans-serif}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-orange{background:var(--color-brand);color:#fff;box-shadow:0 4px 12px #f9731633}.btn-orange:hover:not(:disabled){background:var(--color-brand-hover);transform:translateY(-1px);box-shadow:0 6px 16px #f973164d}.btn-orange:active:not(:disabled){transform:translateY(0)}.btn-outline{background:transparent;border:1px solid var(--color-border-hover);color:var(--color-text-muted)}.btn-outline:hover:not(:disabled){border-color:var(--color-brand);color:var(--color-brand);background:#f9731605;transform:translateY(-1px)}.btn-outline:active:not(:disabled){transform:translateY(0)}.spacer{flex:1}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:#18181b66;backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.03);border-radius:16px;box-shadow:0 4px 30px #0000004d;scrollbar-width:auto;--scrollbar-thumb: var(--color-border-hover);--scrollbar-track: rgba(24, 24, 27, .4);scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.table-wrap::-webkit-scrollbar{height:8px}.table-wrap::-webkit-scrollbar-track{background:#18181b66;border-radius:0 0 16px 16px}.table-wrap::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:6px;border:2px solid rgba(24,24,27,.4)}.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--color-brand)}table{width:100%;border-collapse:collapse;font-size:13px}thead{background:#0c0c0dcc;border-bottom:1px solid rgba(255,255,255,.03)}th{padding:16px 18px;text-align:left;font-weight:700;color:var(--color-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.8px;white-space:nowrap}th.sortable{cursor:pointer;user-select:none;transition:color .2s}th.sortable:hover{color:var(--color-brand)}th.sortable:after{content:"↕";opacity:.35;margin-left:6px;font-size:10px}th.sortable.sort-asc:after{content:"▲";opacity:1;color:var(--color-brand)}th.sortable.sort-desc:after{content:"▼";opacity:1;color:var(--color-brand)}td{padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.02);white-space:nowrap;color:var(--color-text-main)}tr{transition:background-color .2s}tr:hover{background-color:#ffffff04}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:600;text-transform:uppercase;border:1px solid transparent}.badge:before{content:"";width:6px;height:6px;border-radius:50%;display:inline-block}.badge-paid{background:#22c55e14;color:#4ade80;border-color:#22c55e26}.badge-paid:before{background:#22c55e}.badge-pending{background:#f59e0b14;color:#fbbf24;border-color:#f59e0b26}.badge-pending:before{background:#f59e0b}.badge-failed{background:#ef444414;color:#fca5a5;border-color:#ef444426}.badge-failed:before{background:#ef4444}.badge-refunded{background:#818cf814;color:#a5b4fc;border-color:#818cf826}.badge-refunded:before{background:#818cf8}.loading{text-align:center;padding:60px;color:var(--color-text-muted)}.spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.05);border-top-color:var(--color-brand);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:var(--color-text-muted)}.pagination-bar{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;margin-bottom:24px}.pagination-bar span{font-size:14px;font-weight:500;color:var(--color-text-muted)}#occupancySection{margin-top:36px}#occupancySection h3{font-family:Oswald,sans-serif;font-size:18px;color:var(--color-brand);text-transform:uppercase;margin-bottom:16px;letter-spacing:.5px}footer{text-align:center;padding:32px 24px;color:var(--color-text-darker);font-size:12px;border-top:1px solid rgba(255,255,255,.02);margin-top:auto}.title-area{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:16px}.title-area h2{font-family:Oswald,sans-serif;font-size:32px;color:var(--color-text-main);text-transform:uppercase;font-weight:700;letter-spacing:.5px}.title-area h2 span{color:var(--color-brand)}.title-controls{display:flex;gap:12px}.occupancy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.occupancy-loading{grid-column:1 / -1;padding:20px}.toolbar-search{flex:1;min-width:280px;position:relative}.toolbar-search input{width:100%}.back-btn svg{width:14px;height:14px}.week-summary-card{background:#ffffff05;backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:18px 16px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-align:left;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.week-summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.08),transparent)}.week-summary-card:hover{border-color:#f9731666;background:#f9731605;transform:translateY(-4px) scale(1.02);box-shadow:0 12px 24px -10px #0009,0 0 15px #f973160f}.week-summary-card.active{border-color:var(--color-brand);border-width:1.5px;background:#f973160f;box-shadow:0 12px 30px -10px #f9731626,0 0 20px #f9731614}.week-summary-card .active-indicator{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:transparent;transition:background-color .2s}.week-summary-card.active .active-indicator{background:var(--color-brand);box-shadow:0 0 8px var(--color-brand)}.week-summary-card .week-num{font-size:11px;text-transform:uppercase;color:var(--color-text-darker);letter-spacing:.5px;font-weight:600;margin-bottom:4px}.week-summary-card .week-dates{font-size:13px;font-weight:600;color:var(--color-text-main);margin-bottom:12px}.week-summary-card .week-count{font-family:Oswald,sans-serif;font-size:28px;font-weight:700;color:var(--color-brand);display:flex;align-items:baseline;gap:4px}.week-summary-card .week-count span{font-size:13px;font-family:Inter,sans-serif;color:var(--color-text-darker);font-weight:400}.participant-main{font-weight:600;color:var(--color-text-main);margin-bottom:2px}.participant-sub{font-size:12px;color:var(--color-text-muted)}.contact-main{font-weight:500;color:var(--color-text-main);margin-bottom:2px}.contact-sub{font-size:12px;color:var(--color-text-darker);display:flex;flex-direction:column;gap:1px}.contact-sub a{color:inherit;text-decoration:none}.contact-sub a:hover{color:var(--color-brand)}.extra-tag{display:inline-block;background:var(--color-border);color:var(--color-text-muted);padding:2px 6px;border-radius:4px;font-size:11px;margin-right:4px;margin-bottom:4px;font-weight:500}.extra-tag.highlight-orange{background:#f9731614;color:var(--color-brand);border:1px solid rgba(249,115,22,.15)}.extra-tag.highlight-blue{background:#818cf814;color:#a5b4fc;border:1px solid rgba(129,140,248,.15)}.extra-tag.highlight-green{background:#22c55e14;color:#4ade80;border:1px solid rgba(34,197,94,.15)}.observations{font-style:italic;color:var(--color-text-darker);font-size:11px;margin-top:4px;display:block;max-width:320px;white-space:normal}.extra-tags-container{margin-bottom:4px}.price-value{font-weight:700;color:var(--color-text-main);font-size:14px}.value-with-progress{display:flex;flex-direction:column;gap:8px;margin-top:8px}.progress-bar-container{width:100%;height:6px;background:#ffffff0d;border-radius:9999px;overflow:hidden}.progress-bar{height:100%;background:var(--color-brand);border-radius:9999px;transition:width .5s cubic-bezier(.16,1,.3,1);width:0%}.stat-card .value.purple{color:#c084fc}.occupancy-grid.cols-md{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.occupancy-grid.cols-lg{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}@media(max-width:1024px){.occupancy-grid,.occupancy-grid.cols-md,.occupancy-grid.cols-lg{grid-template-columns:repeat(3,1fr)}}.aggregated-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.agg-card{background:#18181b80;backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.03);border-radius:16px;padding:24px;position:relative;overflow:hidden}.agg-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.08),transparent)}.agg-card h3{font-family:Oswald,sans-serif;font-size:18px;color:var(--color-text-main);text-transform:uppercase;margin-bottom:20px;font-weight:700;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:8px}.agg-content{display:flex;flex-direction:column;gap:16px;max-height:320px;overflow-y:auto;padding-right:4px}.agg-content::-webkit-scrollbar{width:4px}.agg-content::-webkit-scrollbar-track{background:transparent}.agg-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.agg-item{display:flex;flex-direction:column;gap:6px}.agg-item-label{display:flex;justify-content:space-between;font-size:13px;color:var(--color-text-main);font-weight:500}.agg-count{color:var(--color-text-muted);font-weight:600}.agg-bar-container{width:100%;height:4px;background:#ffffff0d;border-radius:2px;overflow:hidden}.agg-bar{height:100%;border-radius:2px;transition:width .4s cubic-bezier(.16,1,.3,1)}.agg-bar.bar-orange{background:var(--color-brand)}.agg-bar.bar-blue{background:#818cf8}.agg-bar.bar-green{background:#4ade80}.no-data{color:var(--color-text-darker);font-size:13px;font-style:italic;text-align:center;padding:20px 0}@media(max-width:768px){.content{padding:16px}header{padding:10px 14px;gap:8px}header .brand{gap:10px;flex:1;min-width:0}header h1{font-size:15px;line-height:1.3}header .back-btn{font-size:0;gap:0;padding:8px 10px;flex-shrink:0}header .logout{font-size:11px;padding:6px 10px;white-space:nowrap;flex-shrink:0}.welcome-banner{margin-bottom:24px}.welcome-banner h2{font-size:28px}.welcome-banner p{font-size:14px}.title-area{margin-bottom:20px;gap:12px}.title-area h2{font-size:22px}.title-controls{width:100%;gap:8px}.title-controls .btn{flex:1;justify-content:center}.stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px}.stat-card{padding:14px 16px;border-radius:12px}.stat-card .value{font-size:26px}.stat-card .label{font-size:10px;margin-bottom:4px}.occupancy-grid,.occupancy-grid.cols-md,.occupancy-grid.cols-lg{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px}.week-summary-card{padding:12px;border-radius:10px}.week-summary-card .week-dates{font-size:12px;margin-bottom:8px}.week-summary-card .week-count{font-size:20px}.week-summary-card .week-count span{font-size:11px}.aggregated-stats-grid{gap:12px;margin-bottom:24px!important}.agg-card{padding:16px}.agg-card h3{font-size:15px;margin-bottom:14px}.agg-content{max-height:240px}.portal-grid{gap:14px;margin-bottom:28px}.portal-card{padding:22px}.toolbar,.controls{gap:8px}.toolbar-search{min-width:100%}.controls input[type=text]{flex:1 1 100%;min-width:0!important}.toolbar select,.controls select{flex:1 1 calc(50% - 4px);min-width:0}.toolbar .btn,.controls .btn{flex:1 1 calc(50% - 4px);justify-content:center}.controls .spacer{display:none}th{padding:10px 12px;font-size:10px}td{padding:10px 12px;font-size:12px}.login-box{padding:32px 22px}.login-box h1{font-size:26px}}
