:root{--bg-top: #f6efe1;--bg-bottom: #dff1f0;--surface: rgba(255, 252, 246, .8);--text-strong: #173447;--text-soft: #58707d;--accent-strong: #0f6f8c;--font-display: "Avenir Next", "Segoe UI", "Trebuchet MS", sans-serif;--font-body: "Inter", "Segoe UI", "Trebuchet MS", sans-serif;--font-mono: "Consolas", "Courier New", monospace;font-family:var(--font-body);line-height:1.5;font-weight:400;color:var(--text-strong);background:radial-gradient(circle at top left,rgba(255,210,140,.6),transparent 32%),radial-gradient(circle at top right,rgba(114,193,199,.4),transparent 30%),linear-gradient(180deg,var(--bg-top),var(--bg-bottom));font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 15% 20%,rgba(255,223,165,.42),transparent 0 24%),radial-gradient(circle at 85% 10%,rgba(69,149,170,.2),transparent 0 22%),linear-gradient(180deg,var(--bg-top),var(--bg-bottom))}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(23,52,71,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,71,.025) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.6),transparent 85%);mask-image:linear-gradient(180deg,rgba(0,0,0,.6),transparent 85%)}button,input{font:inherit}#root{min-height:100vh}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.04em;color:var(--text-strong)}h1{font-size:clamp(2.8rem,5vw,4.7rem);line-height:.95}h2{font-size:clamp(2rem,3.8vw,3rem);line-height:1}h3{font-size:1.5rem}strong{font-size:1rem}::selection{background:#0f6f8c33}.login-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;min-height:100vh;padding:32px 0;display:grid;place-items:center}.login-card{width:min(520px,100%);border-radius:32px;padding:36px;display:flex;flex-direction:column;gap:20px;border:1px solid rgba(13,49,66,.12);background:#fffcf6d1;box-shadow:0 28px 60px #1536431f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:rise-in .55s ease both}.tm-logo-login{margin:0 0 4px;font-size:1.4rem;font-weight:800;font-style:italic;letter-spacing:-.02em;color:var(--accent-strong)}.card-heading{display:grid;gap:8px}.support-text{color:var(--text-soft)}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.auth-tab{border:1px solid rgba(13,49,66,.12);border-radius:999px;background:#ffffffb8;color:var(--text-strong);padding:12px 16px;font:inherit;font-weight:700;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.auth-tab.active{background:#0f6f8c1f;border-color:#0f6f8c4d;color:var(--accent-strong)}.auth-tab:hover,.auth-tab:focus-visible{transform:translateY(-1px)}.login-form{display:grid;gap:16px}.field{display:grid;gap:8px;color:var(--text-strong);font-weight:600}.field input{width:100%;box-sizing:border-box;border:1px solid rgba(13,49,66,.16);border-radius:18px;padding:14px 16px;background:#ffffffeb;color:var(--text-strong);font:inherit;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.field input:focus{outline:none;border-color:#0f6f8ca3;box-shadow:0 0 0 4px #0f6f8c1f;background:#fff}.password-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.split-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.helper-text{margin:-6px 2px 0;font-size:.92rem;color:var(--text-soft)}.primary-button,.secondary-button,.ghost-button{border:0;font:inherit;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.primary-button,.secondary-button{border-radius:999px;padding:14px 18px;font-weight:700}.primary-button{background:linear-gradient(135deg,#0f6f8c,#124e69);color:#fdfdf8;box-shadow:0 18px 28px #124e6938}.secondary-button{background:#0f6f8c1f;color:var(--accent-strong)}.ghost-button{border-radius:14px;padding:12px 14px;background:#0f6f8c1a;color:var(--accent-strong);font-weight:700}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.primary-button:focus-visible,.secondary-button:focus-visible,.ghost-button:focus-visible{transform:translateY(-1px)}.primary-button:disabled{opacity:.7;cursor:wait;transform:none}.message{border-radius:18px;padding:14px 16px}.info-message{background:#0f6f8c14;color:var(--accent-strong)}.error-message{background:#b137161f;color:#8b2f16}@keyframes rise-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 720px){.login-shell{width:min(100%,calc(100% - 18px));padding:18px 0}.login-card{padding:22px;border-radius:24px}.password-row,.split-fields{grid-template-columns:1fr}}.app-shell{min-height:100vh}.site-header{background:linear-gradient(135deg,#124e69,#0f6f8c);position:sticky;top:0;z-index:100;box-shadow:0 2px 16px #124e694d}.header-inner{display:flex;align-items:center;gap:40px;max-width:1280px;margin:0 auto;padding:0 40px;height:80px}.tm-logo{font-size:2.5rem;font-weight:800;font-style:italic;color:#fff;white-space:nowrap;letter-spacing:-.02em;flex-shrink:0}.header-nav{display:flex;align-items:center;gap:2px}.nav-link{background:none;border:none;color:#fffc;font:inherit;font-size:1.375rem;font-weight:500;padding:10px 18px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease}.nav-link:hover{background:#ffffff1f;color:#fff}.nav-link.active{color:#fff;font-weight:700;background:#ffffff24}.header-profile{display:flex;align-items:center;gap:10px;margin-left:auto;position:relative}.profile-avatar{width:44px;height:44px;border-radius:50%;background:#ffffff2e;border:1.5px solid rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;font-size:1.05rem;font-weight:800;color:#fff;letter-spacing:.04em;flex-shrink:0}.profile-name{color:#ffffffe6;font-size:1.25rem;font-weight:600;white-space:nowrap}.profile-toggle{display:flex;align-items:center;gap:10px;background:none;border:none;color:#fff;font:inherit;cursor:pointer;padding:7px 10px;border-radius:8px;transition:background .15s ease}.profile-toggle:hover{background:#ffffff1f}.profile-chevron{color:#ffffffb3;transition:transform .2s ease}.profile-chevron.open{transform:rotate(180deg)}.profile-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:300px;background:#fff;border-radius:14px;box-shadow:0 12px 40px #124e6933;border:1px solid rgba(13,49,66,.1);overflow:hidden;animation:dropdown-in .18s ease both;z-index:200}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.profile-dropdown-header{display:flex;align-items:center;gap:14px;padding:20px;background:linear-gradient(135deg,#124e69,#0f6f8c)}.profile-dropdown-avatar{width:48px;height:48px;border-radius:50%;background:#fff3;border:2px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800;color:#fff;flex-shrink:0}.profile-dropdown-name{color:#fff;font-size:1rem;font-weight:700;margin:0 0 6px}.profile-dropdown-role{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.profile-dropdown-role.CUSTOMER{background:#1f8c5d40;color:#a8f0cb}.profile-dropdown-role.ADMIN{background:#ffc85040;color:#ffe08a}.profile-dropdown-details{margin:0;padding:16px 20px;display:grid;gap:12px;border-bottom:1px solid rgba(13,49,66,.08)}.profile-dropdown-details div{display:grid;gap:2px}.profile-dropdown-details dt{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft)}.profile-dropdown-details dd{margin:0;font-size:.95rem;font-weight:600;color:var(--text-strong)}.profile-dropdown-signout{display:block;width:100%;padding:14px 20px;background:none;border:none;font:inherit;font-size:.95rem;font-weight:600;color:#8b2f16;text-align:left;cursor:pointer;transition:background .15s ease}.profile-dropdown-signout:hover{background:#b137160f}.header-search{padding:28px 40px 36px;display:flex;justify-content:center}.search-bar{display:flex;align-items:stretch;background:#fff;border-radius:12px;overflow:hidden;width:100%;max-width:1040px;box-shadow:0 4px 20px #124e6938;min-height:76px}.search-segment{display:flex;align-items:center;gap:14px;padding:14px 28px;flex-shrink:0;color:#0f6f8c}.search-segment--grow{flex:1}.search-segment-inner{display:flex;flex-direction:column;gap:4px}.search-label{font-size:.875rem;font-weight:700;letter-spacing:.1em;color:#173447;text-transform:uppercase}.search-input{border:none;outline:none;font:inherit;font-size:1.25rem;color:#58707d;background:transparent;padding:0;min-width:0;width:100%}.search-input::placeholder{color:#a0b4bc}.dates-row{display:flex;align-items:center;gap:6px;font-size:1.25rem;color:#58707d;cursor:pointer;-webkit-user-select:none;user-select:none}.dates-row svg{color:#58707d}.search-divider{width:1px;background:#0d31421a;align-self:stretch;margin:12px 0;flex-shrink:0}.search-button{background:linear-gradient(135deg,#0f6f8c,#124e69);color:#fff;border:none;font:inherit;font-size:1.3rem;font-weight:700;padding:0 44px;flex-shrink:0;cursor:pointer;transition:opacity .15s ease;letter-spacing:.01em}.search-button:hover{opacity:.88}.page-content{max-width:1280px;margin:0 auto;padding:48px 28px;min-height:calc(100vh - 160px)}.event-list{display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 4px 24px #124e691a;overflow:hidden}.event-row{display:flex;align-items:center;gap:24px;padding:20px 28px;border-bottom:1px solid rgba(13,49,66,.08);transition:background .15s ease}.event-row:last-child{border-bottom:none}.event-row:hover{background:#0f6f8c08}.event-date-box{display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;min-width:64px;height:64px;border-radius:10px;background:#124e6912;gap:0}.event-date-month{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#0f6f8c}.event-date-day{font-size:1.8rem;font-weight:800;line-height:1;color:#173447;font-family:var(--font-display)}.event-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.event-time{font-size:.82rem;color:var(--text-soft);font-weight:500;margin:0}.event-title{font-size:1.1rem;font-weight:700;color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.event-venue{font-size:.88rem;color:var(--text-soft);margin:0}.event-category{display:inline-block;margin-top:4px;padding:2px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;background:#0f6f8c1a;color:#0f6f8c}.event-actions{display:flex;align-items:center;gap:20px;flex-shrink:0}.event-price-col{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.event-reserve-col{display:flex;align-items:center;gap:8px}.event-qty-input{width:56px;padding:6px 8px;border:1.5px solid rgba(13,49,66,.2);border-radius:6px;font:inherit;font-size:.9rem;text-align:center;color:var(--text-strong);outline:none;transition:border-color .15s ease}.event-qty-input:focus{border-color:#0f6f8c}.event-qty-input:disabled{opacity:.4}.event-reserve-btn{background:linear-gradient(135deg,#0f6f8c,#124e69);color:#fff;border:none;font:inherit;font-size:.88rem;font-weight:700;padding:7px 18px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:opacity .15s ease}.event-reserve-btn:hover:not(:disabled){opacity:.85}.event-reserve-btn:disabled{cursor:default}.event-reserve-btn--done{background:linear-gradient(135deg,#1f8c5d,#166644)}.kebab-wrap{position:relative;flex-shrink:0}.kebab-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:32px;height:32px;background:none;border:none;border-radius:6px;cursor:pointer;padding:0;transition:background .15s ease}.kebab-btn span{display:block;width:4px;height:4px;border-radius:50%;background:var(--text-soft);transition:background .15s ease}.kebab-btn:hover{background:#0d314212}.kebab-btn:hover span{background:var(--text-strong)}.kebab-menu{position:absolute;top:calc(100% + 4px);left:0;background:#fff;border-radius:8px;box-shadow:0 6px 24px #0d314226;border:1px solid rgba(13,49,66,.08);overflow:hidden;z-index:200;min-width:110px;animation:dropdown-in .15s ease both}.kebab-item{display:block;width:100%;padding:10px 16px;background:none;border:none;font:inherit;font-size:.9rem;font-weight:600;text-align:left;cursor:pointer;transition:background .12s ease}.kebab-item--edit{color:var(--text-strong)}.kebab-item--edit:hover{background:#0d31420d}.kebab-item--cancel{color:#b13716}.kebab-item--cancel:hover:not(:disabled){background:#b137160f}.kebab-item--cancel:disabled{opacity:.5;cursor:default}.event-price{font-size:1.25rem;font-weight:800;color:var(--text-strong);margin:0;font-family:var(--font-display)}.event-tickets{font-size:.8rem;color:var(--text-soft);margin:0}.load-more-wrap{display:flex;justify-content:center;margin-top:24px}.load-more-btn{background:none;border:2px solid #0f6f8c;color:#0f6f8c;font:inherit;font-size:.95rem;font-weight:700;padding:10px 36px;border-radius:8px;cursor:pointer;transition:background .15s ease,color .15s ease}.load-more-btn:hover:not(:disabled){background:#0f6f8c;color:#fff}.load-more-btn:disabled{opacity:.5;cursor:default}.event-list-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px 24px;color:var(--text-soft);font-size:1rem}.event-list-state--error{color:#8b2f16}.event-list-spinner{width:36px;height:36px;border:3px solid rgba(15,111,140,.2);border-top-color:#0f6f8c;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.my-events-status{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.my-events-status--confirmed{background:#1f8c5d1f;color:#1a7a50}.my-events-status--cancelled{background:#b137161a;color:#8b2f16}.reservation-delete-btn{background:none;border:1.5px solid #b13716;color:#b13716;font:inherit;font-size:.85rem;font-weight:700;padding:6px 16px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.reservation-delete-btn:hover:not(:disabled){background:#b13716;color:#fff}.reservation-delete-btn:disabled{opacity:.5;cursor:default}.admin-badge{padding:4px 14px;border-radius:999px;background:#ffc85038;color:#ffe08a;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.admin-toolbar{display:flex;align-items:center;justify-content:flex-end;margin-bottom:28px}.admin-page-title{font-size:1.8rem;font-weight:800;color:var(--text-strong);margin:0;letter-spacing:-.02em}.admin-add-btn{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#0f6f8c,#124e69);color:#fff;border:none;font:inherit;font-size:.95rem;font-weight:700;padding:10px 22px;border-radius:8px;cursor:pointer;transition:opacity .15s ease}.admin-add-btn:hover{opacity:.88}.admin-recently-label{font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin:0 0 12px}.admin-recently-added{margin-top:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d314280;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:500;padding:24px}.modal{background:#fff;border-radius:16px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0d31424d;animation:modal-in .2s ease both}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px 0}.modal-title{font-size:1.35rem;font-weight:800;color:var(--text-strong);margin:0;letter-spacing:-.02em}.modal-close{background:none;border:none;color:var(--text-soft);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.modal-close:hover{background:#0d314212;color:var(--text-strong)}.modal-form{padding:20px 28px 28px;display:flex;flex-direction:column;gap:16px}.modal-section-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);padding-top:4px;border-top:1px solid rgba(13,49,66,.08)}.modal-section-label:first-of-type{border-top:none;padding-top:0}.modal-row{display:flex;gap:16px}.modal-field{display:flex;flex-direction:column;gap:6px;flex:1}.modal-field--grow{flex:2}.modal-label{font-size:.82rem;font-weight:700;color:var(--text-strong)}.modal-input{border:1.5px solid rgba(13,49,66,.18);border-radius:8px;padding:9px 13px;font:inherit;font-size:.95rem;color:var(--text-strong);outline:none;transition:border-color .15s ease;background:#fff;width:100%;box-sizing:border-box}.modal-input:focus{border-color:#0f6f8c}.modal-textarea{resize:vertical;min-height:80px}.modal-select{cursor:pointer}.modal-error{font-size:.88rem;color:#8b2f16;background:#b1371612;border-radius:6px;padding:10px 14px;margin:0}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding-top:8px}.modal-btn{font:inherit;font-size:.95rem;font-weight:700;padding:10px 24px;border-radius:8px;cursor:pointer;transition:opacity .15s ease,background .15s ease;border:none}.modal-btn--secondary{background:#0d314212;color:var(--text-strong)}.modal-btn--secondary:hover{background:#0d31421f}.modal-btn--primary{background:linear-gradient(135deg,#0f6f8c,#124e69);color:#fff}.modal-btn--primary:hover:not(:disabled){opacity:.88}.modal-btn--primary:disabled{opacity:.5;cursor:default}@media (max-width: 720px){.header-inner{padding:0 16px;gap:16px;height:54px}.header-search{padding:0 16px 20px}.profile-name{display:none}.search-bar{flex-direction:column;border-radius:10px;min-height:unset}.search-divider{width:auto;height:1px;margin:0 16px;align-self:auto}.search-button{padding:16px;border-radius:0 0 10px 10px}}
