.admin-users-shell { background: radial-gradient(ellipse at 88% 5%, rgba(62,166,159,.09), transparent 30%), var(--mist); }
.admin-users-shell .workspace-heading { align-items: center; }
.admin-users-heading h1 { letter-spacing: -.04em; }
.admin-users-shell .status-pill { display: inline-flex; align-items: center; gap: 9px; }
.admin-users-online { padding: 8px 12px; color: #256e58; background: #e5f5ee; border: 1px solid #ccebdd; border-radius: 99px; font-size: .7rem; font-weight: 800; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: #48aa7c; box-shadow: 0 0 0 4px rgba(72,170,124,.14), 0 0 12px rgba(72,170,124,.4); }
.admin-user-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.admin-user-stat { position: relative; display: flex; align-items: center; gap: 15px; min-height: 102px; padding: 20px 22px; overflow: hidden; background: linear-gradient(135deg, #fff 0%, #fbfdfc 100%); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 26px rgba(8,35,45,.055); transition: transform .2s ease, box-shadow .2s ease; }
.admin-user-stat::after { position: absolute; right: -25px; bottom: -48px; width: 105px; height: 105px; content: ''; border: 1px solid rgba(19,47,61,.06); border-radius: 50%; box-shadow: 0 0 0 14px rgba(19,47,61,.018), 0 0 0 28px rgba(19,47,61,.012); }
.admin-user-stat:hover { box-shadow: 0 16px 32px rgba(8,35,45,.09); transform: translateY(-2px); }
.admin-user-stat > div > span { display: block; color: var(--ink-soft); font-size: .72rem; font-weight: 700; }
.admin-user-stat strong { display: block; margin-top: 3px; color: var(--ink); font-size: 1.7rem; line-height: 1.1; }
.admin-stat-icon { position: relative; z-index: 1; display: grid; width: 46px; height: 46px; flex-shrink: 0; place-items: center; border-radius: 14px; }
.admin-stat-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.admin-stat-icon-ink { color: #e9fffb; background: linear-gradient(145deg, #173d4a, #0a2936); box-shadow: 0 7px 16px rgba(8,35,45,.2); }
.admin-stat-icon-sea { color: #216f73; background: #dff3ef; }.admin-stat-icon-sun { color: #86651e; background: #fff0c9; }
.admin-user-stat--today { background: linear-gradient(135deg, #fff 0%, #f4f1ff 100%); border-color: #e2dbfb; }
.admin-stat-icon-today { color: #6651a1; background: #eee9ff; }
.admin-directory-card, .admin-create-card, .admin-audit-card { border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 32px rgba(8,35,45,.055); }
.admin-directory-card { padding: 25px 26px 22px; }
.admin-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 22px; }.admin-card-heading .eyebrow { margin-bottom: 8px; }.admin-card-count { display: inline-flex; align-items: center; gap: 9px; color: var(--ink-soft); font-size: .7rem; }.admin-card-count svg { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: #398d84; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }.admin-card-count strong { color: var(--ink); font-size: 1.15rem; }
.admin-table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 -26px 18px; padding: 13px 26px; background: linear-gradient(90deg, #f7faf9, #fbfcfb); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.admin-filter-label { display: flex; align-items: center; gap: 9px; color: var(--ink-soft); font: 700 .67rem 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }.admin-filter-label svg { width: 16px; height: 16px; fill: none; stroke: var(--coral); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }.admin-filter-controls { display: flex; gap: 8px; }.admin-filter-controls input, .admin-filter-controls .form-select { min-height: 38px; border-color: #dce7e4; border-radius: 7px; }.admin-filter-controls input { min-width: 155px; }.admin-filter-controls .form-select { min-width: 132px; padding-top: .48rem; padding-bottom: .48rem; background-color: #fff; }
.admin-users-shell .form-control:focus, .admin-users-shell .form-select:focus { border-color: #4d9e99; box-shadow: 0 0 0 .2rem rgba(62,166,159,.14); }
.admin-table-shell { max-height: 560px; overflow: auto; border: 1px solid #e8eeec; border-radius: 9px; }.admin-table-shell .dataTables_wrapper { min-width: 900px; }.admin-table-shell .dataTables_scrollBody { max-height: none !important; }.admin-users-table { min-width: 900px; margin-bottom: 0; }.admin-users-table th, .admin-audit-table th { color: var(--ink-soft); background: #f8faf9; font: 700 .64rem 'DM Mono', monospace; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }.admin-users-table th { padding-top: 13px; padding-bottom: 13px; }.admin-users-table td { padding-top: 15px; padding-bottom: 15px; }.admin-users-table tbody tr { transition: background .16s ease; }.admin-users-table tbody tr:hover { background: #f7fbfa; }.admin-user-identity { display: flex; align-items: center; gap: 10px; min-width: 190px; }.admin-user-avatar { display: grid; width: 36px; height: 36px; flex-shrink: 0; place-items: center; color: #17635f; background: linear-gradient(145deg, #e2f5f0, #cfe9e4); border: 1px solid #d0e9e4; border-radius: 12px; font: 700 .72rem 'DM Mono', monospace; }.admin-user-identity small { display: block; margin-top: 2px; color: var(--ink-soft); font-size: .68rem; }.admin-username { color: var(--ink-soft); font-size: .78rem; }
.admin-role-badge, .admin-status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border: 1px solid transparent; border-radius: 99px; font-size: .66rem; font-weight: 800; white-space: nowrap; }.admin-role-administrator { color: #8e4b38; background: #fce6db; border-color: #f5d6c8; }.admin-role-edukator, .admin-role-guide { color: #216f73; background: #e1f2ef; border-color: #cce6e1; }.admin-role-finance { color: #86651e; background: #fff0c9; border-color: #f4e4b2; }.admin-role-pengunjung { color: var(--ink-soft); background: #edf1ef; border-color: #e0e8e5; }.admin-status-badge > span { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }.admin-status-active { color: #257a59; background: #e2f3e9; border-color: #cce8d7; }.admin-status-inactive { color: #6e7779; background: #edf1ef; border-color: #e0e8e5; }.admin-status-pending { color: #966f16; background: #fff0c9; border-color: #f4e4b2; }.admin-status-blocked { color: #a3473b; background: #fce6db; border-color: #f5d6c8; }
.admin-user-actions { min-width: 120px; }.admin-user-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 100%; border-radius: 6px; font-size: .66rem; }.admin-user-actions .btn svg, .admin-create-card button svg { width: 15px; height: 15px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.admin-create-card { padding: 26px; background: linear-gradient(145deg, #fff 0%, #f7fbf9 100%); }.admin-create-card .workspace-section-title { font-size: 1.7rem; }.admin-create-card .form-control, .admin-create-card .form-select { background-color: #fff; border-color: #dce7e4; border-radius: 7px; }.admin-create-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 13px; }.admin-create-heading .eyebrow { margin-bottom: 5px; }.admin-create-icon { display: grid; width: 47px; height: 47px; flex-shrink: 0; place-items: center; color: #d7fff3; background: linear-gradient(145deg, #176d70, #0c3c48); border-radius: 14px; box-shadow: 0 8px 18px rgba(8,69,74,.17); }.admin-create-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }.admin-create-card .form-label { color: #304c54; font-size: .72rem; font-weight: 800; }.admin-create-card button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 7px; }.admin-create-card button svg { width: 17px; height: 17px; }
.admin-audit-card { padding: 26px; }.admin-audit-caption { display: inline-flex; align-items: center; gap: 7px; color: var(--ink-soft); font-size: .7rem; }.admin-audit-caption svg { width: 16px; height: 16px; fill: none; stroke: #398d84; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }.admin-audit-table { min-width: 760px; }.admin-audit-table td { font-size: .78rem; }
@media (max-width: 767.98px) {
    .admin-directory-card, .admin-create-card { padding: 21px 18px; }
    .admin-table-toolbar { margin-right: -18px; margin-left: -18px; padding-right: 18px; padding-left: 18px; }
    .admin-filter-controls { flex-wrap: wrap; }
    .admin-filter-controls input { flex: 1 1 100%; min-width: 0; }
    .admin-filter-controls .form-select { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .admin-users-shell *, .admin-users-shell *::before, .admin-users-shell *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.admin-users-hero { position: relative; display: grid; grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr); align-items: center; min-height: 306px; margin-bottom: 24px; padding: 34px clamp(24px, 4vw, 48px); overflow: hidden; color: #fff; background: linear-gradient(112deg, #092b38 0%, #0c4650 58%, #14756f 100%); border: 1px solid rgba(101,224,202,.22); border-radius: 16px; box-shadow: 0 22px 46px rgba(8,35,45,.14); isolation: isolate; }
.admin-users-hero::before { position: absolute; z-index: -1; inset: 0; content: ''; opacity: .17; background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(90deg, #000, transparent 90%); }
.admin-users-hero::after { position: absolute; z-index: -1; right: 24%; bottom: -190px; width: 460px; height: 300px; content: ''; background: rgba(92,221,194,.13); border-radius: 50%; filter: blur(70px); }
.admin-users-hero-copy { position: relative; z-index: 2; max-width: 400px; padding: 8px 0; }
.admin-users-hero-kicker { display: inline-flex; align-items: center; gap: 9px; color: #9cebd9; font: 700 .63rem 'DM Mono', monospace; letter-spacing: .14em; }
.admin-users-hero-kicker > span, .admin-hero-caption > span { width: 7px; height: 7px; flex-shrink: 0; background: #77e3c2; border-radius: 50%; box-shadow: 0 0 0 4px rgba(119,227,194,.14), 0 0 12px rgba(119,227,194,.65); }
.admin-users-hero h2 { margin: 14px 0 11px; color: #fff; font: 700 clamp(2rem, 3.1vw, 2.9rem)/1.06 'Playfair Display', serif; letter-spacing: -.045em; }
.admin-users-hero h2 span { color: #8fe1d0; }
.admin-users-hero-copy p { max-width: 370px; margin: 0; color: rgba(236,255,250,.75); font-size: .81rem; line-height: 1.7; }
.admin-create-trigger { display: inline-flex; align-items: center; gap: 9px; margin-top: 20px; padding: 11px 15px; color: #092e39; background: #a4efd9; border: 1px solid rgba(255,255,255,.35); border-radius: 7px; font-size: .73rem; font-weight: 800; box-shadow: 0 7px 18px rgba(0,18,24,.2); transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.admin-create-trigger:hover { color: #092e39; background: #c0f8e8; box-shadow: 0 10px 22px rgba(0,18,24,.28); transform: translateY(-2px); }
.admin-create-trigger:focus-visible { outline: 3px solid #f2c66d; outline-offset: 3px; }
.admin-create-trigger svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.admin-users-hero-art { position: relative; display: grid; min-width: 0; min-height: 246px; place-items: center; }
.admin-work-illustration { position: relative; z-index: 1; width: min(100%, 530px); overflow: visible; filter: drop-shadow(0 17px 24px rgba(0,20,28,.2)); animation: admin-work-float 5s ease-in-out infinite; }
.admin-screen-scene { animation-duration: 8s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; }
.admin-screen-scene--work { animation-name: admin-work-screen; }
.admin-screen-scene--tickets { opacity: 0; animation-name: admin-ticket-screen; }
.admin-hero-orbit { position: absolute; width: 220px; height: 220px; border: 1px solid rgba(160,240,220,.2); border-radius: 50%; }
.admin-hero-orbit--one { right: 10%; top: 6%; }
.admin-hero-orbit--two { right: 16%; top: 15%; width: 190px; height: 190px; border-style: dashed; opacity: .7; }
.admin-hero-caption { position: absolute; z-index: 2; right: 4px; bottom: 2px; display: inline-flex; align-items: center; gap: 8px; padding: 7px 10px; color: rgba(236,255,250,.87); background: rgba(4,34,43,.58); border: 1px solid rgba(173,235,220,.19); border-radius: 99px; font: 500 .57rem 'DM Mono', monospace; backdrop-filter: blur(8px); }
.admin-hero-caption > span { width: 6px; height: 6px; box-shadow: none; }
.admin-hero-caption b { color: #8fe1d0; font-size: .8rem; }
@keyframes admin-work-screen { 0%, 38% { opacity: 1; } 48%, 90% { opacity: 0; } 100% { opacity: 1; } }
@keyframes admin-ticket-screen { 0%, 38% { opacity: 0; } 48%, 90% { opacity: 1; } 100% { opacity: 0; } }
@keyframes admin-work-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
.admin-user-actions { display: flex; align-items: center; gap: 6px; min-width: 104px; }
.admin-user-actions form:first-child { display: flex; align-items: center; gap: 5px; }
.admin-user-actions .form-select { width: 104px; min-width: 0; padding: .42rem 1.7rem .42rem .55rem; border-color: #dce7e4; border-radius: 7px; font-size: .67rem; }
.admin-icon-button { display: inline-grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; padding: 0; background: #fff; border: 1px solid #dce7e4; border-radius: 9px; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.admin-icon-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.admin-icon-button--save { color: #1d766c; }
.admin-icon-button--save:hover { color: #fff; background: #218c7e; border-color: #218c7e; }
.admin-icon-button--reset { color: #b65342; }
.admin-icon-button--reset:hover { color: #fff; background: #d4614c; border-color: #d4614c; }
.admin-icon-button:hover { box-shadow: 0 5px 12px rgba(8,35,45,.13); transform: translateY(-1px); }
.admin-icon-button:focus-visible { outline: 3px solid rgba(62,166,159,.4); outline-offset: 2px; }
.admin-create-modal .modal-content { overflow: hidden; background: #fbfdfc; border: 1px solid #dce9e6; border-radius: 16px; box-shadow: 0 24px 70px rgba(4,29,38,.25); }
.admin-create-modal .modal-header { align-items: center; padding: 22px 25px; background: linear-gradient(120deg, #f0f8f5, #fff); border-bottom: 1px solid #e1ece9; }
.admin-create-modal .admin-create-heading { margin: 0; }
.admin-create-modal .eyebrow { margin-bottom: 4px; color: #388b80; font-size: .6rem; }
.admin-create-modal .modal-title { color: var(--ink); font: 700 1.55rem/1.15 'Playfair Display', serif; }
.admin-create-modal .modal-body { padding: 22px 25px 26px; }
.admin-create-description { margin: 0 0 19px; color: var(--ink-soft); font-size: .8rem; }
.admin-create-modal .form-label { margin-bottom: 6px; color: #304c54; font-size: .72rem; font-weight: 800; }
.admin-create-modal .form-control, .admin-create-modal .form-select { min-height: 42px; background-color: #fff; border-color: #dce7e4; border-radius: 7px; }
.admin-create-modal .btn-coral { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 7px; }
.admin-create-modal .btn-coral svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
@media (max-width: 991.98px) {
    .admin-users-hero { grid-template-columns: minmax(230px, .82fr) minmax(0, 1.18fr); padding-right: 22px; padding-left: 30px; }
    .admin-users-hero-art { min-height: 220px; }
    .admin-hero-caption { right: -4px; font-size: .51rem; }
}
@media (max-width: 767.98px) {
    .admin-users-hero { grid-template-columns: 1fr; gap: 8px; padding: 27px 22px 17px; }
    .admin-users-hero-copy { max-width: none; }
    .admin-users-hero h2 { font-size: clamp(2rem, 8vw, 2.6rem); }
    .admin-users-hero-art { min-height: 205px; margin: -5px -12px 0; }
    .admin-work-illustration { width: min(100%, 480px); }
    .admin-hero-orbit--one { right: 15%; }
    .admin-hero-orbit--two { right: 21%; }
    .admin-hero-caption { right: 0; bottom: -2px; }
    .admin-user-actions { flex-wrap: wrap; }
    .admin-user-actions form:first-child { flex: 1 1 100%; }
    .admin-user-actions .form-select { flex: 1; }
    .admin-audit-card { overflow: hidden; }
}
@media (max-width: 575.98px) {
    .admin-users-hero { padding-right: 18px; padding-left: 18px; }
    .admin-users-hero-art { min-height: 170px; }
    .admin-work-illustration { width: 110%; max-width: none; }
    .admin-hero-orbit { width: 155px; height: 155px; }
    .admin-hero-orbit--two { width: 130px; height: 130px; }
    .admin-hero-caption { font-size: .46rem; }
    .admin-create-modal .modal-header { padding: 18px; }
    .admin-create-modal .modal-body { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .admin-work-illustration, .admin-screen-scene { animation: none !important; }
    .admin-screen-scene--work { opacity: 0 !important; }
    .admin-screen-scene--tickets { opacity: 1 !important; }
}

.ticket-catalog-page { background: radial-gradient(ellipse at 88% 8%, rgba(62,166,159,.08), transparent 32%), var(--mist); }
.ticket-catalog-page .workspace-content { gap: 24px; }
.ticket-catalog-hero { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 270px; padding: 38px clamp(28px, 5vw, 62px); overflow: hidden; color: #fff; background: linear-gradient(112deg, #082b38 0%, #0c4650 58%, #117b78 100%); border: 1px solid rgba(101,224,202,.2); border-radius: 8px; box-shadow: 0 24px 54px rgba(8,35,45,.16); isolation: isolate; }
.ticket-catalog-hero::before { position: absolute; z-index: -1; inset: 0; content: ''; opacity: .2; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 38px 38px; mask-image: linear-gradient(90deg, #000, transparent 82%); }
.ticket-catalog-hero::after { position: absolute; z-index: -1; right: 20%; bottom: -180px; width: 390px; height: 280px; content: ''; background: rgba(102,220,192,.12); border-radius: 50%; filter: blur(55px); }
.ticket-catalog-hero__content { position: relative; z-index: 1; max-width: 620px; }
.ticket-catalog-hero__eyebrow, .ticket-catalog-section-label { display: inline-flex; align-items: center; gap: 9px; color: #8ce4d4; font: 700 .66rem 'DM Mono', monospace; letter-spacing: .13em; text-transform: uppercase; }
.ticket-catalog-hero__eyebrow span { color: rgba(255,255,255,.42); }
.ticket-catalog-hero h1 { margin: 14px 0 10px; color: #fff; font: 700 clamp(2.2rem, 4vw, 3.4rem)/1.04 'Playfair Display', serif; letter-spacing: -.04em; }
.ticket-catalog-hero p { max-width: 510px; margin: 0; color: rgba(236,255,250,.73); font-size: .92rem; }
.ticket-catalog-hero__actions { display: flex; align-items: center; gap: 20px; margin-top: 24px; }
.ticket-catalog-create { display: inline-flex; align-items: center; gap: 9px; padding: 11px 16px; color: #092f3a; background: #a8f0dc; border: 1px solid rgba(255,255,255,.24); border-radius: 4px; font-size: .75rem; font-weight: 800; text-decoration: none; box-shadow: 0 6px 18px rgba(3,24,32,.15); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.ticket-catalog-create:hover { color: #092f3a; background: #c1f7e8; box-shadow: 0 10px 22px rgba(3,24,32,.22); transform: translateY(-2px); }
.ticket-catalog-create svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.ticket-catalog-live { display: inline-flex; align-items: center; gap: 8px; color: rgba(238,255,249,.76); font: 600 .67rem 'DM Mono', monospace; letter-spacing: .04em; }
.ticket-catalog-live > span, .ticket-catalog-live-dot { width: 7px; height: 7px; background: #6af0b9; border-radius: 50%; box-shadow: 0 0 0 4px rgba(106,240,185,.14), 0 0 13px rgba(106,240,185,.7); }
.ticket-catalog-hero__art { position: absolute; top: 50%; right: 8%; display: grid; width: 220px; height: 220px; place-items: center; transform: translateY(-50%); }
.ticket-catalog-hero__icon { position: relative; z-index: 1; width: 110px; height: 110px; fill: rgba(138,237,214,.1); stroke: #a1efdc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; filter: drop-shadow(0 0 18px rgba(107,235,206,.3)); animation: ticket-catalog-float 5s ease-in-out infinite; }
.ticket-catalog-orbit { position: absolute; inset: 8px; border: 1px solid rgba(158,237,217,.23); border-radius: 50%; }
.ticket-catalog-orbit--two { inset: 30px -8px; transform: rotate(-34deg); border-color: rgba(158,237,217,.18); }
.ticket-catalog-hero__spark { position: absolute; width: 5px; height: 5px; background: #b3f4df; border-radius: 50%; box-shadow: 0 0 14px #79e7d0; }
.ticket-catalog-hero__spark--one { top: 24px; right: 48px; }.ticket-catalog-hero__spark--two { bottom: 35px; left: 22px; width: 3px; height: 3px; }
.ticket-catalog-hero__code { position: absolute; bottom: 5px; color: rgba(184,241,223,.55); font: 600 .56rem 'DM Mono', monospace; letter-spacing: .16em; }
.ticket-catalog-hero__index { position: absolute; right: 24px; bottom: 20px; color: rgba(255,255,255,.45); font: 600 .6rem 'DM Mono', monospace; letter-spacing: .12em; }
.ticket-catalog-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.ticket-catalog-section-label { color: #218883; }
.ticket-catalog-toolbar h2 { margin: 7px 0 0; color: #12323b; font: 700 clamp(1.5rem, 2.4vw, 2rem)/1.1 'Playfair Display', serif; letter-spacing: -.025em; }
.ticket-catalog-count { display: flex; align-items: center; gap: 11px; padding: 10px 14px; background: rgba(255,255,255,.75); border: 1px solid rgba(16,60,69,.09); border-radius: 5px; box-shadow: 0 5px 16px rgba(8,35,45,.035); }
.ticket-catalog-count__icon { display: grid; width: 36px; height: 36px; place-items: center; color: #20817d; background: #e0f4ee; border-radius: 4px; }
.ticket-catalog-count__icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.ticket-catalog-count strong, .ticket-catalog-count small { display: block; }.ticket-catalog-count strong { color: #11343d; font: 700 1.15rem 'DM Mono', monospace; line-height: 1.1; }.ticket-catalog-count small { margin-top: 4px; color: #718388; font-size: .64rem; }
.ticket-catalog-discounts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 14px; }
.ticket-catalog-discount { position: relative; display: flex; align-items: center; gap: 14px; min-height: 94px; padding: 17px 20px; overflow: hidden; background: linear-gradient(110deg, #fff8e8, #fff 75%); border: 1px solid #f1dfb6; border-radius: 5px; box-shadow: 0 8px 18px rgba(77,59,21,.035); }
.ticket-catalog-discount__icon { position: relative; z-index: 1; display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; color: #9b7120; background: #fff0c9; border: 1px solid #f1dfb6; border-radius: 4px; }
.ticket-catalog-discount__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.ticket-catalog-discount > div { position: relative; z-index: 1; min-width: 0; }.ticket-catalog-discount__label { color: #9b7120; font: 700 .58rem 'DM Mono', monospace; letter-spacing: .09em; text-transform: uppercase; }.ticket-catalog-discount h3 { margin: 3px 0 1px; color: #233e43; font: 700 .95rem 'DM Mono', monospace; }.ticket-catalog-discount p { margin: 0; color: #718080; font-size: .68rem; }.ticket-catalog-discount p strong { margin-left: 4px; color: #9b7120; }
.ticket-catalog-discount__glow { position: absolute; top: -45px; right: -24px; width: 130px; height: 130px; background: rgba(244,204,111,.16); border-radius: 50%; filter: blur(20px); }
.ticket-catalog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 365px), 1fr)); gap: 18px; }
.ticket-catalog-card { position: relative; min-width: 0; padding: 22px; overflow: hidden; background: linear-gradient(150deg, #fff 0%, #fff 55%, #f8fcfa 100%); border: 1px solid rgba(12,54,64,.1); border-radius: 6px; box-shadow: 0 10px 28px rgba(8,35,45,.055); transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease; animation: ticket-catalog-enter .45s both; }
.ticket-catalog-card::before { position: absolute; top: 0; left: 0; width: 52px; height: 2px; content: ''; background: linear-gradient(90deg, #49b8a5, transparent); transition: width .25s ease; }.ticket-catalog-card:hover { border-color: rgba(48,159,148,.28); box-shadow: 0 18px 38px rgba(8,55,58,.1); transform: translateY(-4px); }.ticket-catalog-card:hover::before { width: 100%; }
.ticket-catalog-card__topline { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.ticket-catalog-card__serial { color: #8a9999; font: 600 .59rem 'DM Mono', monospace; letter-spacing: .12em; }
.ticket-catalog-status { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; color: #9a604c; background: #fff0e9; border: 1px solid #f5dfd4; border-radius: 30px; font: 700 .58rem 'DM Mono', monospace; text-transform: uppercase; }.ticket-catalog-status > span { width: 6px; height: 6px; background: currentColor; border-radius: 50%; }.ticket-catalog-status.is-active { color: #277b5c; background: #e6f5ec; border-color: #d4ecde; }
.ticket-catalog-card__heading { display: flex; align-items: center; gap: 13px; margin-top: 17px; }.ticket-catalog-card__icon { display: grid; width: 50px; height: 50px; flex: 0 0 50px; place-items: center; color: #13827d; background: linear-gradient(145deg, #e6f7f1, #d7f0e9); border: 1px solid #d2ece4; border-radius: 5px; box-shadow: inset 0 1px rgba(255,255,255,.8); }.ticket-catalog-card__icon svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.ticket-catalog-card__title { min-width: 0; }.ticket-catalog-card__title > span { color: #388f87; font: 700 .58rem 'DM Mono', monospace; letter-spacing: .1em; text-transform: uppercase; }.ticket-catalog-card__title h2 { margin: 4px 0 0; overflow-wrap: anywhere; color: #15343c; font: 700 1.35rem/1.12 'Playfair Display', serif; letter-spacing: -.025em; }
.ticket-catalog-card__description { display: -webkit-box; min-height: 38px; margin: 13px 0 17px; overflow: hidden; color: #778789; font-size: .72rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.ticket-catalog-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 8px; padding: 15px 0; border-top: 1px solid #edf1ef; border-bottom: 1px solid #edf1ef; }.ticket-catalog-metric { display: flex; align-items: center; gap: 9px; min-width: 0; }.ticket-catalog-metric__icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; background: #f7efed; border-radius: 4px; }.ticket-catalog-metric__icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }.ticket-catalog-metric__icon.is-coral { color: #c56c52; background: #fff0e9; }.ticket-catalog-metric__icon.is-teal { color: #27877e; background: #e5f5ef; }.ticket-catalog-metric__icon.is-blue { color: #5486a3; background: #eaf2f8; }.ticket-catalog-metric__icon.is-gold { color: #a77d28; background: #fbf3dc; }
.ticket-catalog-metric > span:last-child { min-width: 0; }.ticket-catalog-metric small { display: block; overflow: hidden; color: #899696; font-size: .59rem; text-overflow: ellipsis; white-space: nowrap; }.ticket-catalog-metric strong { display: block; margin-top: 2px; overflow: hidden; color: #183941; font: 700 .8rem 'DM Mono', monospace; text-overflow: ellipsis; white-space: nowrap; }
.ticket-catalog-progress { margin: 14px 0 17px; }.ticket-catalog-progress > div { display: flex; justify-content: space-between; margin-bottom: 7px; color: #879595; font-size: .62rem; }.ticket-catalog-progress strong { color: #328d81; font: 700 .63rem 'DM Mono', monospace; }.ticket-catalog-progress__track { display: block; height: 4px; overflow: hidden; background: #eaf0ed; border-radius: 5px; }.ticket-catalog-progress__track > span { display: block; height: 100%; background: linear-gradient(90deg, #36a998, #98ddbd); border-radius: inherit; transition: width .35s ease; }
.ticket-catalog-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 13px; border-top: 1px solid #edf1ef; }.ticket-catalog-card__footer > span { display: inline-flex; align-items: center; gap: 8px; color: #778789; font-size: .61rem; white-space: nowrap; }.ticket-catalog-live-dot { width: 6px; height: 6px; background: #43a984; box-shadow: 0 0 0 3px rgba(67,169,132,.12); }.ticket-catalog-card__footer > div { display: flex; align-items: center; gap: 12px; }.ticket-catalog-date-link, .ticket-catalog-detail-link { display: inline-flex; align-items: center; gap: 5px; color: #21857e; font-size: .64rem; font-weight: 800; text-decoration: none; white-space: nowrap; transition: color .18s ease; }.ticket-catalog-date-link:hover, .ticket-catalog-detail-link:hover { color: #105b5c; }.ticket-catalog-date-link svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }.ticket-catalog-detail-link { color: #7b8989; }.ticket-catalog-detail-link span { font-size: .9rem; }
.ticket-catalog-empty { grid-column: 1 / -1; display: grid; justify-items: center; padding: 58px 20px; text-align: center; background: rgba(255,255,255,.7); border: 1px dashed rgba(31,105,105,.2); border-radius: 6px; }.ticket-catalog-empty > span { display: grid; width: 62px; height: 62px; place-items: center; color: #268d82; background: #e2f4ed; border-radius: 50%; }.ticket-catalog-empty svg { width: 36px; fill: none; stroke: currentColor; stroke-width: 1.5; }.ticket-catalog-empty h2 { margin: 17px 0 5px; color: #17373e; font: 700 1.45rem 'Playfair Display', serif; }.ticket-catalog-empty p { margin: 0; color: #7b8c8d; font-size: .78rem; }
@keyframes ticket-catalog-float { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-9px) rotate(2deg); } }
@keyframes ticket-catalog-enter { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) { .ticket-catalog-hero__art { right: 3%; opacity: .62; }.ticket-catalog-hero__content { max-width: 72%; } }
@media (max-width: 600px) { .ticket-catalog-hero { min-height: 248px; padding: 27px 22px; }.ticket-catalog-hero__content { max-width: 100%; }.ticket-catalog-hero__art { top: auto; right: 10px; bottom: -40px; width: 155px; height: 155px; opacity: .22; transform: none; }.ticket-catalog-hero__icon { width: 82px; height: 82px; }.ticket-catalog-hero__index { right: 13px; bottom: 12px; }.ticket-catalog-toolbar { align-items: flex-start; }.ticket-catalog-count { gap: 8px; padding: 7px; }.ticket-catalog-count__icon { width: 31px; height: 31px; }.ticket-catalog-count small { font-size: .56rem; }.ticket-catalog-card { padding: 18px; }.ticket-catalog-card__footer { align-items: flex-start; flex-direction: column; }.ticket-catalog-card__footer > div { align-self: flex-end; } }
@media (prefers-reduced-motion: reduce) { .ticket-catalog-page *, .ticket-catalog-page *::before, .ticket-catalog-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

.ticket-form-page .workspace-content { gap: 24px; }
.ticket-form-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 250px;
    padding: 34px clamp(24px, 4vw, 52px);
    overflow: hidden;
    color: #fff;
    background: radial-gradient(ellipse at 78% 15%, rgba(62, 223, 195, .2), transparent 35%), linear-gradient(118deg, #092735, #0d4b58 66%, #107b79);
    border: 1px solid rgba(132, 244, 222, .18);
    border-radius: 14px;
    box-shadow: 0 22px 48px rgba(8, 35, 45, .16);
    isolation: isolate;
}
.ticket-form-hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: '';
    opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(90deg, #000, transparent 85%);
}
.ticket-form-hero::after { position: absolute; z-index: -1; right: 20%; bottom: -190px; width: 380px; height: 270px; content: ''; background: rgba(93, 235, 203, .12); border-radius: 50%; filter: blur(50px); }
.ticket-form-hero__content { position: relative; z-index: 1; max-width: 620px; }
.ticket-form-hero__eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #9af0dc; font: 700 .65rem 'DM Mono', monospace; letter-spacing: .12em; text-transform: uppercase; }
.ticket-form-hero__eyebrow > span:last-child { color: rgba(255,255,255,.42); }
.ticket-form-live-dot { display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; background: #68eeb6; border-radius: 50%; box-shadow: 0 0 0 4px rgba(104,238,182,.13), 0 0 14px rgba(104,238,182,.7); }
.ticket-form-hero h1 { margin: 15px 0 8px; color: #fff; font: 700 clamp(2rem, 4vw, 3.2rem)/1.08 'Playfair Display', serif; letter-spacing: -.04em; }
.ticket-form-hero p { max-width: 510px; margin: 0; color: rgba(236,255,250,.73); font-size: .88rem; }
.ticket-form-back { display: inline-flex; align-items: center; gap: 8px; margin-top: 19px; padding: 8px 11px; color: #d7fff5; background: rgba(4, 25, 36, .28); border: 1px solid rgba(180,255,239,.24); border-radius: 7px; font-size: .7rem; font-weight: 800; transition: background .2s ease, transform .2s ease; }
.ticket-form-back:hover { color: #fff; background: rgba(255,255,255,.12); transform: translateX(-2px); }
.ticket-form-back svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.ticket-form-hero__art { position: absolute; top: 50%; right: 8%; display: grid; width: 228px; height: 190px; place-items: center; transform: translateY(-50%); }
.ticket-form-vessel { position: relative; z-index: 1; width: 190px; overflow: visible; filter: drop-shadow(0 10px 18px rgba(2, 19, 30, .26)); animation: ticket-form-sail 5s ease-in-out infinite; }
.ticket-form-pass { fill: rgba(156, 244, 221, .12); stroke: #a1f4df; stroke-width: 1.6; }
.ticket-form-pass-detail { fill: none; stroke: rgba(184,255,239,.65); stroke-dasharray: 3 4; stroke-width: 1.5; }
.ticket-form-ship { fill: rgba(255,190,119,.15); stroke: #ffce91; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; animation: ticket-form-boat 2.8s ease-in-out infinite; }
.ticket-form-waves { fill: none; stroke: #66dbc9; stroke-linecap: round; stroke-width: 2; stroke-dasharray: 5 5; animation: ticket-form-wave 3s linear infinite; }
.ticket-form-star { fill: #ffe29a; filter: drop-shadow(0 0 5px rgba(255,226,154,.8)); }
.ticket-form-orbit { position: absolute; width: 206px; height: 136px; border: 1px solid rgba(150,246,226,.19); border-radius: 50%; }
.ticket-form-orbit--one { transform: rotate(-23deg); animation: ticket-form-orbit 14s linear infinite; }
.ticket-form-orbit--two { width: 178px; height: 154px; border-color: rgba(242,198,109,.2); transform: rotate(35deg); animation: ticket-form-orbit 18s linear infinite reverse; }
.ticket-form-hero__code { position: absolute; right: 0; bottom: -4px; color: rgba(184,241,223,.62); font: 600 .52rem 'DM Mono', monospace; letter-spacing: .14em; }
.ticket-form-hero__index { position: absolute; right: 22px; bottom: 17px; color: rgba(255,255,255,.42); font: 600 .55rem 'DM Mono', monospace; letter-spacing: .1em; }
.ticket-form-page > .container-xl .workspace-content > .alert { margin: 0; border: 0; border-radius: 10px; }
.ticket-form-card { padding: clamp(20px, 3vw, 34px); background: linear-gradient(145deg, #fff, #fbfdfc); border: 1px solid rgba(25,71,87,.1); border-radius: 14px; box-shadow: 0 14px 36px rgba(12,48,61,.07); }
.ticket-form-card__heading { display: flex; align-items: center; gap: 13px; margin-bottom: 25px; padding-bottom: 18px; border-bottom: 1px solid rgba(25,71,87,.09); }
.ticket-form-card__icon { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; color: #14877f; background: linear-gradient(145deg, #e8f8f2, #d9f1eb); border: 1px solid #d4eee6; border-radius: 12px; }
.ticket-form-card__icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.ticket-form-card__eyebrow { color: #378b83; font: 700 .57rem 'DM Mono', monospace; letter-spacing: .11em; text-transform: uppercase; }
.ticket-form-card__heading h2 { margin: 3px 0 0; color: #15343c; font: 700 1.35rem 'Playfair Display', serif; }
.ticket-form-card .form-label { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 7px; color: #294852; font-size: .72rem; }
.ticket-form-card .form-control, .ticket-form-card .form-select { border-color: #dce9e6; border-radius: 8px; background-color: #fff; font-size: .82rem; }
.ticket-form-card .form-control:focus, .ticket-form-card .form-select:focus { border-color: #45a99e; box-shadow: 0 0 0 .2rem rgba(47,143,150,.13); }
.ticket-form-card textarea.form-control { min-height: 130px; resize: vertical; }
.ticket-form-notice { display: flex; align-items: flex-start; gap: 12px; padding: 15px 17px; color: #526c76; background: linear-gradient(110deg, #eef9f6, #f5fbfa); border: 1px solid #d9eee8; border-radius: 9px; font-size: .72rem; line-height: 1.7; }
.ticket-form-notice strong { color: #176e69; }
.ticket-form-notice__icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: #16847d; background: #dff4ed; border-radius: 9px; }
.ticket-form-notice__icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.ticket-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 27px; padding-top: 19px; border-top: 1px solid rgba(25,71,87,.09); }
.ticket-form-actions > span { display: inline-flex; align-items: center; gap: 8px; color: #758a8e; font: 600 .63rem 'DM Mono', monospace; }
.ticket-form-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 43px; padding: 10px 17px; border-radius: 8px; background: linear-gradient(135deg, #e87658, #cc5945); box-shadow: 0 8px 18px rgba(209,92,68,.2); transition: transform .2s ease, box-shadow .2s ease; }
.ticket-form-actions .btn:hover { box-shadow: 0 12px 23px rgba(209,92,68,.28); transform: translateY(-2px); }
.ticket-form-actions .btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
@keyframes ticket-form-sail { 0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(9px) translateY(-7px) rotate(2deg); } }
@keyframes ticket-form-boat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ticket-form-wave { to { stroke-dashoffset: -20; } }
@keyframes ticket-form-orbit { to { rotate: 360deg; } }
@media (max-width: 900px) { .ticket-form-hero__art { right: 3%; opacity: .68; }.ticket-form-hero__content { max-width: 72%; } }
@media (max-width: 600px) {
    .ticket-form-hero { min-height: 236px; padding: 27px 21px; border-radius: 12px; }
    .ticket-form-hero__content { max-width: 100%; }
    .ticket-form-hero__art { top: auto; right: -5px; bottom: -55px; width: 150px; height: 142px; opacity: .22; transform: none; }
    .ticket-form-vessel { width: 135px; }
    .ticket-form-orbit { width: 140px; height: 100px; }
    .ticket-form-orbit--two { width: 120px; height: 108px; }
    .ticket-form-hero__index { right: 12px; bottom: 10px; }
    .ticket-form-card { padding: 19px; }
    .ticket-form-actions { align-items: stretch; flex-direction: column; }
    .ticket-form-actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .ticket-form-page *, .ticket-form-page *::before, .ticket-form-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.programs-page { background: radial-gradient(ellipse at 90% 4%, rgba(62,166,159,.08), transparent 30%), var(--mist); }
.programs-page .workspace-content { gap: 22px; }
.programs-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 252px;
    padding: 34px clamp(24px, 4vw, 52px);
    overflow: hidden;
    color: #fff;
    background: radial-gradient(ellipse at 78% 14%, rgba(67,221,192,.2), transparent 35%), linear-gradient(118deg, #092735, #0d4b58 66%, #107b79);
    border: 1px solid rgba(132,244,222,.18);
    border-radius: 14px;
    box-shadow: 0 22px 48px rgba(8,35,45,.16);
    isolation: isolate;
}
.programs-hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: '';
    opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(90deg, #000, transparent 85%);
}
.programs-hero::after { position: absolute; z-index: -1; right: 19%; bottom: -180px; width: 370px; height: 260px; content: ''; background: rgba(93,235,203,.12); border-radius: 50%; filter: blur(50px); }
.programs-hero__content { position: relative; z-index: 1; max-width: 620px; }
.programs-hero__eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #9af0dc; font: 700 .64rem 'DM Mono', monospace; letter-spacing: .12em; text-transform: uppercase; }
.programs-hero__eyebrow > span:not(.programs-live-dot) { color: rgba(255,255,255,.42); }
.programs-live-dot { display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; background: #68eeb6; border-radius: 50%; box-shadow: 0 0 0 4px rgba(104,238,182,.13), 0 0 14px rgba(104,238,182,.7); }
.programs-hero h1 { margin: 15px 0 8px; color: #fff; font: 700 clamp(2.1rem, 4vw, 3.25rem)/1.08 'Playfair Display', serif; letter-spacing: -.04em; }
.programs-hero p { max-width: 510px; margin: 0; color: rgba(236,255,250,.73); font-size: .87rem; }
.programs-create-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 20px; padding: 10px 14px; color: #092f3a; background: #a8f0dc; border: 1px solid rgba(255,255,255,.24); border-radius: 7px; font-size: .72rem; font-weight: 800; box-shadow: 0 7px 18px rgba(3,24,32,.16); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.programs-create-link:hover { color: #092f3a; background: #c1f7e8; box-shadow: 0 11px 22px rgba(3,24,32,.22); transform: translateY(-2px); }
.programs-create-link svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.programs-hero__art { position: absolute; top: 50%; right: 8%; display: grid; width: 220px; height: 218px; place-items: center; transform: translateY(-50%); }
.programs-checklist { position: relative; z-index: 1; width: 145px; overflow: visible; filter: drop-shadow(0 12px 18px rgba(2,19,30,.24)); animation: programs-notes-float 4.5s ease-in-out infinite; }
.programs-checklist-shadow { fill: rgba(2,18,29,.24); transform: translate(5px,6px); }
.programs-checklist-page { fill: rgba(237,255,248,.96); stroke: #a3f3de; stroke-width: 1.5; }
.programs-checklist-clip { fill: none; stroke: #ffc982; stroke-linecap: round; stroke-width: 5; }
.programs-check { fill: none; stroke: #1caa92; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; stroke-dasharray: 20; stroke-dashoffset: 20; animation: programs-check-draw 4.5s ease-in-out infinite; }
.programs-checklist-lines { fill: none; stroke: #8ca9a6; stroke-linecap: round; stroke-width: 2; stroke-dasharray: 48; animation: programs-notes-lines 3s ease-in-out infinite alternate; }
.programs-checklist-spark { fill: #ffd27e; filter: drop-shadow(0 0 6px rgba(255,210,126,.8)); transform-origin: 134px 142px; animation: programs-notes-spark 2.6s ease-in-out infinite; }
.programs-checklist-dot { fill: #78eed1; filter: drop-shadow(0 0 5px rgba(120,238,209,.8)); animation: programs-notes-dot 2.4s ease-in-out infinite alternate; }
.programs-hero-orbit { position: absolute; width: 196px; height: 166px; border: 1px solid rgba(150,246,226,.2); border-radius: 50%; }
.programs-hero-orbit--one { transform: rotate(-26deg); animation: programs-notes-orbit 14s linear infinite; }
.programs-hero-orbit--two { width: 164px; height: 194px; border-color: rgba(242,198,109,.17); transform: rotate(35deg); animation: programs-notes-orbit 19s linear infinite reverse; }
.programs-hero__code { position: absolute; right: -10px; bottom: -4px; color: rgba(184,241,223,.62); font: 600 .49rem 'DM Mono', monospace; letter-spacing: .12em; }
.programs-hero__index { position: absolute; right: 20px; bottom: 16px; color: rgba(255,255,255,.42); font: 600 .53rem 'DM Mono', monospace; letter-spacing: .1em; }
.programs-page .workspace-content > .alert { margin: 0; border: 0; border-radius: 10px; }
.programs-stats { --bs-gutter-x: 13px; --bs-gutter-y: 13px; }
.programs-stat { display: flex; align-items: center; gap: 14px; min-height: 112px; padding: 18px; background: linear-gradient(145deg,#fff,#f7fbfa); border: 1px solid rgba(25,71,87,.09); border-radius: 12px; box-shadow: 0 10px 24px rgba(8,35,45,.045); transition: transform .2s ease, box-shadow .2s ease; }
.programs-stat:hover { box-shadow: 0 15px 30px rgba(8,35,45,.1); transform: translateY(-3px); }
.programs-stat > div { min-width: 0; }
.programs-stat .small { font-size: .66rem; font-weight: 700; letter-spacing: .02em; }
.programs-stat .dashboard-number { margin-top: 3px; color: #143b45; font-size: clamp(1.35rem,2.2vw,1.8rem); line-height: 1.15; }
.programs-stat__icon { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; color: #17857e; background: #e5f6f0; border: 1px solid #d4eee5; border-radius: 12px; }
.programs-stat__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.programs-stat--schedules .programs-stat__icon { color: #a37923; background: #fff5dc; border-color: #f4e8c3; }
.programs-stat--transactions .programs-stat__icon { color: #4a78a3; background: #edf5fc; border-color: #dfeaf4; }
.programs-stat--participants .programs-stat__icon { color: #bd654d; background: #fff0e9; border-color: #f5e1d8; }
.programs-list-card { padding: clamp(18px,2.4vw,28px); background: linear-gradient(145deg,#fff,#fbfdfc); border: 1px solid rgba(25,71,87,.09); border-radius: 14px; box-shadow: 0 12px 30px rgba(8,35,45,.055); }
.programs-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid rgba(25,71,87,.09); }
.programs-list-kicker { color: #378b83; font: 700 .57rem 'DM Mono',monospace; letter-spacing: .12em; text-transform: uppercase; }
.programs-list-heading h2 { margin: 4px 0 0; color: #15343c; font: 700 1.35rem 'Playfair Display',serif; }
.programs-list-count { flex: 0 0 auto; padding: 7px 10px; color: #17756f; background: #e7f6f1; border: 1px solid #d8eee7; border-radius: 99px; font: 700 .61rem 'DM Mono',monospace; }
.programs-list-card .table-responsive { border: 1px solid #e8efed; border-radius: 10px; }
.programs-list-card .workspace-table { min-width: 760px; margin: 0; }
.programs-list-card .workspace-table thead th { padding: 12px; color: #72878a; background: #f3f8f6; border-bottom: 1px solid #e4eeea; font: 700 .59rem 'DM Mono',monospace; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.programs-list-card .workspace-table tbody td { padding: 13px 12px; border-color: #edf2f0; vertical-align: middle; }
.programs-list-card .workspace-table tbody tr { transition: background .18s ease; }
.programs-list-card .workspace-table tbody tr:hover { background: #f7fbf9; }
.programs-list-card .workspace-table td:first-child > a { color: #167c76; }
.programs-list-card .workspace-table td:first-child > a:hover { color: #105c5c; }
.programs-list-card .status-pill { border: 1px solid rgba(47,143,150,.12); border-radius: 99px; font: 700 .61rem 'DM Mono',monospace; }
.program-row-actions { display: flex; min-width: 142px; flex-direction: column; align-items: flex-start; gap: 7px; }
.program-row-actions form { margin: 0; }
.program-action { display: inline-flex; min-height: 34px; align-items: center; gap: 8px; padding: 6px 10px; color: #fff; border: 1px solid transparent; border-radius: 8px; font-size: .68rem; font-weight: 800; line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease; }
.program-action:hover { color: #fff; box-shadow: 0 5px 12px rgba(11,44,54,.14); transform: translateY(-1px); }
.program-action:focus-visible { outline: 3px solid rgba(50,163,151,.35); outline-offset: 2px; }
.program-action > svg { width: 15px; height: 15px; flex: 0 0 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.program-action--detail { color: #fff; background: linear-gradient(115deg,#178c87,#247cab); }
.program-action--detail:hover { background: linear-gradient(115deg,#11756f,#1d668d); }
.program-action--detail .program-action__arrow { width: 14px; height: 14px; margin-left: 2px; transition: transform .16s ease; }
.program-action--detail:hover .program-action__arrow { transform: translateX(3px); }
.program-action--edit { color: #85421f; background: #fff0dc; border-color: #f3dfc2; }
.program-action--edit:hover { color: #713719; background: #ffe6c5; }
.program-action--toggle.is-published { color: #914537; background: #fff0ed; border-color: #f4d8d2; }
.program-action--toggle.is-published:hover { color: #793629; background: #ffe3de; }
.program-action--toggle.is-inactive { color: #176d52; background: #e8f7ef; border-color: #d3edde; }
.program-action--toggle.is-inactive:hover { color: #105a43; background: #d9f1e5; }
@keyframes programs-notes-float { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-9px) rotate(2deg); } }
@keyframes programs-check-draw { 0%,10% { stroke-dashoffset: 20; } 22%,100% { stroke-dashoffset: 0; } }
@keyframes programs-notes-lines { from { stroke-dashoffset: 0; opacity: .55; } to { stroke-dashoffset: 12; opacity: 1; } }
@keyframes programs-notes-spark { 0%,100% { opacity: .7; transform: scale(.82) rotate(0); } 50% { opacity: 1; transform: scale(1.12) rotate(18deg); } }
@keyframes programs-notes-dot { from { opacity: .55; transform: scale(.8); } to { opacity: 1; transform: scale(1.25); } }
@keyframes programs-notes-orbit { to { rotate: 360deg; } }
@media (max-width: 900px) { .programs-hero__art { right: 3%; opacity: .7; }.programs-hero__content { max-width: 72%; } }
@media (max-width: 600px) {
    .programs-hero { min-height: 235px; padding: 26px 20px; border-radius: 12px; }
    .programs-hero__content { max-width: 100%; }
    .programs-hero__art { top: auto; right: -4px; bottom: -58px; width: 145px; height: 150px; opacity: .22; transform: none; }
    .programs-checklist { width: 108px; }
    .programs-hero-orbit { width: 130px; height: 116px; }
    .programs-hero-orbit--two { width: 110px; height: 130px; }
    .programs-hero__index { right: 11px; bottom: 9px; }
    .programs-stats > div { width: 50%; }
    .programs-stat { min-height: 91px; gap: 10px; padding: 13px 11px; }
    .programs-stat__icon { width: 36px; height: 36px; flex-basis: 36px; border-radius: 10px; }
    .programs-stat__icon svg { width: 19px; height: 19px; }
    .programs-stat .small { font-size: .59rem; }
    .programs-stat .dashboard-number { font-size: 1.35rem; }
    .programs-list-heading { align-items: flex-start; }
    .programs-list-card { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .programs-page *, .programs-page *::before, .programs-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.profile-shell .workspace-heading { align-items: center; }
.profile-shell .workspace-heading > div { max-width: 720px; }
.profile-shell .workspace-heading.profile-page-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    min-height: 0;
    margin-bottom: 24px;
    padding: 30px 36px;
    background: linear-gradient(112deg, #fff 0%, #f4faf8 64%, #fffaf2 100%);
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 12px;
    box-shadow: 0 14px 32px rgba(8,35,45,.045);
    overflow: hidden;
}
.profile-page-header::before {
    content: '';
    position: absolute;
    inset: 22px auto 22px 0;
    width: 3px;
    background: linear-gradient(180deg, #2f8f96, #e56d4f);
    border-radius: 0 3px 3px 0;
}
.profile-page-header::after {
    content: '';
    position: absolute;
    top: 26px;
    right: 28px;
    width: 3px;
    height: 34px;
    background: linear-gradient(180deg, rgba(47,143,150,.55), rgba(47,143,150,0));
    border-radius: 3px;
}
.profile-page-header__content {
    position: relative;
    z-index: 1;
    flex: 1;
    max-width: 640px;
}
.profile-page-header__badge {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: flex-end;
    flex-shrink: 0;
}
.profile-shell .workspace-heading h1 {
    margin: 0 0 8px;
    color: var(--ink);
    font: 700 clamp(2.4rem, 4vw, 4.25rem)/1.02 'Playfair Display', serif;
    letter-spacing: -.04em;
}
.profile-shell .workspace-heading p {
    margin: 0;
    color: var(--ink-soft);
    font-size: .96rem;
    line-height: 1.65;
}
.profile-shell .status-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 92px; padding: 9px 14px; border-radius: 999px; }
.status-pill--active {
    gap: 8px;
    color: #1d5b61;
    background: rgba(223,246,238,.72);
    border: 1px solid rgba(29,91,97,.18);
    box-shadow: 0 5px 14px rgba(29,91,97,.07), inset 0 1px rgba(255,255,255,.9);
    letter-spacing: .02em;
}
.status-pill--active::before {
    content: '';
    width: 7px;
    height: 7px;
    background: #36a878;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(54,168,120,.12);
}
.profile-layout { align-items: stretch; }
.profile-card {
    min-height: 100%;
    padding: 28px 28px 24px;
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(248,250,249,.94) 100%);
    box-shadow: 0 18px 38px rgba(8,35,45,.06);
}
.profile-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 26px;
}
.profile-card__head .eyebrow {
    margin-bottom: 10px;
}
.profile-name {
    margin: 0;
    font: 700 clamp(2.2rem, 3.4vw, 4.1rem)/1.06 'Playfair Display', serif;
    letter-spacing: -.055em;
    color: var(--ink);
}
.profile-role-pill {
    color: #1d5b61;
    background: #def3ef;
    border: 1px solid rgba(29,91,97,.14);
}
.profile-details {
    margin-top: 8px;
}
.profile-field {
    min-height: 110px;
    padding: 18px 18px 14px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 12px;
}
.profile-label {
    display: block;
    margin-bottom: 10px;
    color: var(--ink-soft);
    font: 700 .63rem 'DM Mono', monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.profile-field > div:last-child {
    color: var(--ink);
    font-size: clamp(1rem, 1.2vw, 1.1rem);
    font-weight: 700;
}
.profile-actions {
    margin-top: 28px;
}
.profile-actions .btn-coral {
    padding: .9rem 1.35rem;
    border-radius: 8px;
    font-weight: 800;
}
.profile-note {
    min-height: 100%;
    padding: 28px 26px 24px;
    background: linear-gradient(160deg, #fffdf8 0%, #fff 100%);
    border: 1px solid rgba(234,217,173,.8);
    border-radius: 18px;
    box-shadow: 0 18px 38px rgba(8,35,45,.05);
}
.profile-note .eyebrow {
    margin-bottom: 8px;
}
.profile-note h3 {
    margin: 10px 0 12px;
    font: 700 clamp(2rem, 2.5vw, 3rem)/1.06 'Playfair Display', serif;
}
.profile-note p {
    margin: 0 0 18px;
    color: var(--ink-soft);
    line-height: 1.7;
}
.profile-note .btn-outline-ink {
    padding: .95rem 1.1rem;
    border-radius: 10px;
    font-weight: 800;
}
.profile-note .btn-outline-ink:hover {
    transform: translateY(-1px);
}
.profile-log-card { padding: 28px; }

.profile-shell--future {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 78% 4%, rgba(47,143,150,.11), transparent 32%),
        linear-gradient(155deg, #f8faf8 0%, #edf4f2 58%, #f8f6ef 100%);
}
.profile-shell--future::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image: linear-gradient(rgba(19,47,61,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(19,47,61,.025) 1px, transparent 1px);
    background-size: 42px 42px;
    content: '';
    mask-image: linear-gradient(90deg, transparent, #000 45%, #000);
}
.profile-shell--future .workspace-content > * {
    animation: profile-future-enter .65s cubic-bezier(.2,.75,.25,1) both;
}
.profile-shell--future .workspace-content > *:nth-child(2) { animation-delay: .1s; }
.profile-shell--future .workspace-content > *:nth-child(3) { animation-delay: .18s; }
.profile-future-hero {
    position: relative;
    display: flex;
    min-height: 220px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
    padding: 36px clamp(24px, 4vw, 52px);
    overflow: hidden;
    color: #f5fbf9;
    background: linear-gradient(112deg, #08232d 0%, #123f4a 58%, #1d6267 100%);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    box-shadow: 0 24px 58px rgba(8,35,45,.18);
}
.profile-future-hero::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 32%, rgba(255,255,255,.055) 50%, transparent 68%);
    background-size: 220% 100%;
    animation: profile-future-scan 9s ease-in-out infinite;
    content: '';
    pointer-events: none;
}
.profile-future-hero__copy,
.profile-future-hero__identity { position: relative; z-index: 1; }
.profile-future-kicker,
.profile-future-identity-label {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #a9d9d1;
    font: 500 .68rem 'DM Mono', monospace;
    letter-spacing: .13em;
}
.profile-future-kicker > span {
    width: 7px;
    height: 7px;
    background: #f2c66d;
    border-radius: 50%;
    box-shadow: 0 0 12px rgba(242,198,109,.85);
    animation: profile-future-pulse 2s ease-in-out infinite;
}
.profile-future-hero h1 {
    margin: 13px 0 8px;
    color: #fff;
    font: 700 clamp(2.5rem, 5vw, 4.4rem)/.98 'Playfair Display', serif;
    letter-spacing: -.05em;
}
.profile-future-hero h1 em { color: #a9d9d1; font-weight: 600; }
.profile-future-hero p { margin: 0; color: rgba(239,249,246,.72); }
.profile-future-hero__identity {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 190px;
    padding: 13px 16px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 14px;
    backdrop-filter: blur(12px);
}
.profile-future-avatar {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    color: #102f3a;
    background: linear-gradient(145deg, #f2c66d, #f4e5b9);
    border-radius: 13px;
    font-size: 1.1rem;
    font-weight: 800;
}
.profile-future-hero__identity strong { display: block; margin-top: 3px; color: #fff; font-size: .9rem; }
.profile-future-identity-label { font-size: .56rem; }
.profile-future-pulse {
    width: 8px;
    height: 8px;
    margin-left: auto;
    background: #50d29a;
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(80,210,154,.13), 0 0 14px rgba(80,210,154,.7);
}
.profile-future-orbit {
    position: absolute;
    width: 340px;
    height: 340px;
    border: 1px solid rgba(169,217,209,.15);
    border-radius: 50%;
    pointer-events: none;
}
.profile-future-orbit::before,
.profile-future-orbit::after {
    position: absolute;
    width: 7px;
    height: 7px;
    background: #f2c66d;
    border-radius: 50%;
    box-shadow: 0 0 14px rgba(242,198,109,.8);
    content: '';
}
.profile-future-orbit::before { top: 52px; left: 32px; }
.profile-future-orbit::after { right: 28px; bottom: 68px; width: 5px; height: 5px; background: #a9d9d1; }
.profile-future-orbit--one { top: -213px; right: 23%; animation: profile-future-orbit 26s linear infinite; }
.profile-future-orbit--two { top: -246px; right: calc(23% - 24px); width: 405px; height: 405px; opacity: .55; animation: profile-future-orbit 38s linear infinite reverse; }
.profile-future-alert { margin-bottom: 20px; border-radius: 12px; }
.profile-future-card,
.profile-future-sidecard {
    height: 100%;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid rgba(19,47,61,.09);
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(8,35,45,.07);
}
.profile-future-card { background: rgba(255,255,255,.92); }
.profile-future-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 26px; }
.profile-future-card__heading .eyebrow { margin-bottom: 6px; }
.profile-future-card__heading h2,
.profile-future-sidecard h2 { margin: 0; color: var(--ink); font: 700 clamp(1.6rem, 2.3vw, 2.15rem)/1.12 'Playfair Display', serif; letter-spacing: -.03em; }
.profile-future-index { color: #7b8e91; font: 500 .68rem 'DM Mono', monospace; }
.profile-future-index i { margin: 0 4px; color: var(--coral); font-style: normal; }
.profile-future-form .form-label { margin-bottom: 7px; color: #536a70; font-size: .73rem; font-weight: 800; }
.profile-future-form .form-control {
    min-height: 50px;
    padding: .75rem .9rem;
    color: var(--ink);
    background-color: #f8fbfa;
    border: 1px solid #dce8e5;
    border-radius: 10px;
    box-shadow: none;
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.profile-future-form .form-control:focus {
    background-color: #fff;
    border-color: #2f8f96;
    box-shadow: 0 0 0 4px rgba(47,143,150,.12);
    transform: translateY(-1px);
}
.profile-future-form .profile-future-readonly { color: #6f8387; background-color: #eef3f2; border-style: dashed; }
.profile-future-lock-note { display: flex; gap: 8px; margin: 15px 0 0; color: #728388; font-size: .73rem; }
.profile-future-lock-note::before { color: #2f8f96; content: '▣'; }
.profile-future-form__actions { display: flex; align-items: center; gap: 18px; margin-top: 25px; padding-top: 20px; border-top: 1px solid #e8efed; }
.profile-future-save { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 12px; padding: .75rem 1.2rem; border-radius: 10px; transition: transform .2s ease, box-shadow .2s ease; }
.profile-future-save:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(229,109,79,.24); }
.profile-future-save svg { transition: transform .2s ease; }
.profile-future-save:hover svg { transform: translateX(3px); }
.profile-future-cancel { color: #63777c; font-size: .82rem; font-weight: 800; }
.profile-future-cancel:hover { color: var(--coral-dark); }
.profile-future-sidecard {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(150deg, #fffdf7 0%, #f6f7f1 100%);
    border-color: rgba(207,190,145,.38);
}
.profile-future-sidecard::after { position: absolute; top: -56px; right: -66px; width: 190px; height: 190px; border: 1px solid rgba(47,143,150,.12); border-radius: 50%; box-shadow: 0 0 0 22px rgba(47,143,150,.035), 0 0 0 46px rgba(47,143,150,.025); content: ''; animation: profile-future-breathe 6s ease-in-out infinite; }
.profile-future-sidecard__icon { display: grid; width: 52px; height: 52px; margin-bottom: 25px; place-items: center; color: #216f73; background: #e1f2ef; border: 1px solid rgba(47,143,150,.15); border-radius: 16px; }
.profile-future-sidecard .eyebrow { margin-bottom: 7px; }
.profile-future-sidecard p { margin: 13px 0 22px; color: #697a7d; font-size: .85rem; line-height: 1.8; }
.profile-future-sidecard__rule { display: flex; gap: 5px; width: 100%; margin-bottom: 20px; }
.profile-future-sidecard__rule span { height: 3px; flex: 1; background: #dbe8e5; border-radius: 9px; }
.profile-future-sidecard__rule span:first-child { background: linear-gradient(90deg, #2f8f96, #8dc9bd); }
.profile-future-logout { display: flex; width: 100%; align-items: center; justify-content: space-between; color: #a54e3d; font-size: .8rem; font-weight: 800; }
.profile-future-logout span { transition: transform .2s ease; }
.profile-future-logout:hover span { transform: translate(2px, -2px); }
@keyframes profile-future-enter { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes profile-future-scan { 0%, 30% { background-position: 120% 0; } 65%, 100% { background-position: -120% 0; } }
@keyframes profile-future-pulse { 50% { opacity: .45; transform: scale(.78); } }
@keyframes profile-future-orbit { to { transform: rotate(360deg); } }
@keyframes profile-future-breathe { 50% { transform: scale(1.08); opacity: .65; } }

.admin-user-profile { min-height: 100%; }
.admin-user-profile .workspace-content { display: grid; gap: 22px; }
.admin-user-profile-hero {
    position: relative;
    display: flex;
    min-height: 184px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    overflow: hidden;
    padding: 32px 38px;
    color: #eafffb;
    background: linear-gradient(115deg, #102f3d 0%, #14535a 65%, #287e79 100%);
    border: 1px solid rgba(160,235,220,.2);
    border-radius: 18px;
    box-shadow: 0 22px 48px rgba(8,35,45,.16);
}
.admin-user-profile-hero::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.075) 48%, transparent 72%);
    background-size: 220% 100%;
    animation: profile-future-scan 8s ease-in-out infinite;
    content: '';
    pointer-events: none;
}
.admin-user-profile-hero__copy, .admin-user-profile-hero__actions { position: relative; z-index: 1; }
.admin-user-profile-kicker { display: inline-flex; align-items: center; gap: 9px; color: #a6e9d9; font: 700 .66rem 'DM Mono', monospace; letter-spacing: .13em; }
.admin-user-profile-kicker > span { width: 7px; height: 7px; background: #74efd0; border-radius: 50%; box-shadow: 0 0 12px rgba(116,239,208,.8); }
.admin-user-profile-hero h1 { margin: 10px 0 5px; color: #fff; font: 700 clamp(2rem, 4vw, 3.2rem)/1.08 'Playfair Display', serif; letter-spacing: -.035em; }
.admin-user-profile-hero h1 em { color: #8ce4d1; font-weight: 500; }
.admin-user-profile-hero p { max-width: 620px; margin: 0; color: rgba(232,250,246,.72); font-size: .88rem; }
.admin-user-profile-orbit { position: absolute; width: 200px; height: 200px; border: 1px solid rgba(165,247,222,.15); border-radius: 50%; box-shadow: 0 0 0 22px rgba(165,247,222,.025), 0 0 0 46px rgba(165,247,222,.02); }
.admin-user-profile-orbit--one { top: -125px; right: 10%; }
.admin-user-profile-orbit--two { right: -85px; bottom: -145px; width: 250px; height: 250px; }
.admin-profile-icon-button {
    display: inline-grid;
    width: 44px;
    height: 44px;
    place-items: center;
    color: #f2fffc;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(220,255,247,.24);
    border-radius: 13px;
    transition: transform .18s ease, background .18s ease;
}
.admin-profile-icon-button:hover { color: #fff; background: rgba(255,255,255,.2); transform: translateY(-2px); }
.admin-profile-icon-button svg { width: 20px; height: 20px; }
.admin-user-identity-card {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 18px;
    padding: 22px 25px;
    background: linear-gradient(110deg, #fff, #f6fbf9);
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 16px;
    box-shadow: 0 14px 32px rgba(8,35,45,.055);
}
.admin-user-profile-avatar { display: grid; width: 66px; height: 66px; flex: 0 0 66px; place-items: center; color: #e8fffa; background: linear-gradient(145deg, #206d70, #103541); border: 3px solid #d2f2e9; border-radius: 21px; box-shadow: 0 9px 22px rgba(18,83,81,.19); font-size: 1.65rem; font-weight: 800; }
.admin-user-identity-copy { min-width: 0; flex: 1; }
.admin-user-identity-copy .eyebrow { margin-bottom: 3px; }
.admin-user-identity-copy h2 { margin: 0 0 9px; color: var(--ink); font: 700 clamp(1.25rem, 2vw, 1.8rem)/1.15 'Playfair Display', serif; overflow-wrap: anywhere; }
.admin-user-identity-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.admin-user-profile-pill { display: inline-flex; max-width: 100%; align-items: center; padding: 5px 9px; color: #59666b; background: #eef2f1; border: 1px solid rgba(19,47,61,.08); border-radius: 999px; font-size: .67rem; font-weight: 800; line-height: 1.25; white-space: nowrap; }
.admin-user-profile-pill--role { color: #176a69; background: #e1f4ef; border-color: #cbe9df; }
.admin-user-profile-pill--active, .admin-user-profile-pill--paid, .admin-user-profile-pill--completed, .admin-user-profile-pill--confirmed { color: #26734e; background: #e5f5eb; border-color: #cce9d6; }
.admin-user-profile-pill--pending, .admin-user-profile-pill--waiting_payment { color: #86621a; background: #fff2d5; border-color: #f4e2b2; }
.admin-user-profile-pill--inactive, .admin-user-profile-pill--blocked, .admin-user-profile-pill--cancelled, .admin-user-profile-pill--expired, .admin-user-profile-pill--failed { color: #a6433e; background: #fff0ed; border-color: #f4d1ca; }
.admin-user-identity-meta { display: grid; gap: 4px; padding-left: 22px; border-left: 1px solid #dce8e5; }
.admin-user-identity-meta span { color: #718187; font: 700 .61rem 'DM Mono', monospace; letter-spacing: .1em; }
.admin-user-identity-meta strong { color: #183d48; font-size: .88rem; }
.admin-user-identity-card form { margin-left: auto; }
.admin-profile-icon-button--reset { color: #a6503c; background: #fff1e9; border-color: #f2d8ca; }
.admin-profile-icon-button--reset:hover { color: #8e392f; background: #ffe4d7; }
.admin-user-profile-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.admin-user-profile-stat { display: flex; min-width: 0; min-height: 94px; align-items: center; gap: 13px; padding: 17px; background: rgba(255,255,255,.88); border: 1px solid rgba(19,47,61,.075); border-radius: 14px; box-shadow: 0 10px 24px rgba(8,35,45,.045); }
.admin-user-profile-stat__icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 13px; }
.admin-user-profile-stat__icon svg, .admin-user-profile-section-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.admin-user-profile-stat__icon--teal, .admin-user-profile-section-icon { color: #1c7772; background: #e1f4ef; }
.admin-user-profile-stat__icon--blue, .admin-user-profile-section-icon--blue { color: #426fa1; background: #e8f0fb; }
.admin-user-profile-stat__icon--coral, .admin-user-profile-section-icon--coral { color: #b65844; background: #fff0e9; }
.admin-user-profile-stat__icon--gold, .admin-user-profile-section-icon--gold { color: #927020; background: #fff4d8; }
.admin-user-profile-stat > div { min-width: 0; }
.admin-user-profile-stat > div > span { display: block; color: #708087; font-size: .68rem; font-weight: 700; }
.admin-user-profile-stat strong { display: block; margin-top: 4px; color: #163b48; font-size: .95rem; line-height: 1.3; overflow-wrap: anywhere; }
.admin-user-profile-card { min-width: 0; padding: 23px; border: 1px solid rgba(19,47,61,.075); border-radius: 16px; box-shadow: 0 14px 32px rgba(8,35,45,.05); }
.admin-user-profile-section-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 19px; }
.admin-user-profile-section-heading > div { min-width: 0; flex: 1; }
.admin-user-profile-section-icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 13px; }
.admin-user-profile-section-heading .eyebrow { display: block; margin-bottom: 2px; }
.admin-user-profile-section-heading h2 { margin: 0; color: #173845; font: 700 1.26rem/1.2 'Playfair Display', serif; }
.admin-user-profile-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; margin: 0; }
.admin-user-profile-details > div { min-width: 0; padding: 12px 0; border-bottom: 1px solid #edf1ef; }
.admin-user-profile-details > div:nth-last-child(-n+2) { border-bottom: 0; }
.admin-user-profile-details dt { margin-bottom: 4px; color: #77868a; font: 700 .62rem 'DM Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.admin-user-profile-details dd { margin: 0; color: #243e47; font-size: .82rem; font-weight: 700; overflow-wrap: anywhere; }
.admin-user-profile-last-order { background: linear-gradient(145deg, #fff 0%, #fffaf4 100%); }
.admin-user-profile-last-order .admin-user-profile-section-heading { margin-bottom: 17px; }
.admin-user-last-order-link { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 12px; padding: 15px; color: inherit; background: #fff; border: 1px solid #f0e6dc; border-radius: 12px; text-decoration: none; }
.admin-user-last-order-link:hover { border-color: #e5b7a3; box-shadow: 0 8px 20px rgba(123,73,48,.07); }
.admin-user-last-order-link > strong { flex: 1 1 100%; color: #176c70; font-size: .95rem; }
.admin-user-last-order-link > span:not(.admin-user-profile-pill) { color: #718087; font-size: .74rem; }
.admin-user-last-order-meta { display: flex; justify-content: space-between; margin-top: 16px; padding-top: 13px; color: #65777d; border-top: 1px solid #eee6dc; font-size: .76rem; }
.admin-user-last-order-meta strong { color: #193d48; }
.admin-user-profile-count { flex: 0 0 auto; padding: 6px 10px; color: #63777a; background: #f2f6f4; border: 1px solid #e3ebe8; border-radius: 999px; font-size: .68rem; font-weight: 800; }
.admin-user-bookings { padding-bottom: 10px; }
.admin-user-bookings-heading { margin-bottom: 16px; }
.admin-user-bookings-table-wrap { margin: 0 -23px; }
.admin-user-bookings-table { min-width: 930px; border-color: #edf1ef; font-size: .76rem; }
.admin-user-bookings-table thead th { padding: 12px 14px; color: #718187; background: #f6f9f7; border-bottom: 1px solid #e7eeeb; font: 700 .61rem 'DM Mono', monospace; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.admin-user-bookings-table tbody td { padding: 13px 14px; color: #41565d; border-color: #edf1ef; vertical-align: middle; }
.admin-user-bookings-table tbody tr:hover td { background: #f7fbf9; }
.admin-user-bookings-table tbody td:first-child { min-width: 150px; color: #1d3e49; }
.admin-user-transaction-link { display: inline-flex; align-items: center; gap: 5px; color: #08777d; font-weight: 800; text-decoration: none; white-space: nowrap; }
.admin-user-transaction-link:hover { color: #bd4d37; text-decoration: underline; text-underline-offset: 3px; }
.admin-user-transaction-link svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.admin-user-profile-empty { padding: 24px !important; color: #718187 !important; text-align: center; }
.admin-user-activity { margin-bottom: 28px; }

@media (max-width: 991.98px) {
    .admin-user-profile-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-user-identity-meta { margin-left: auto; }
    .admin-user-profile-details > div:nth-last-child(-n+2) { border-bottom: 1px solid #edf1ef; }
    .admin-user-profile-details > div:last-child { border-bottom: 0; }
    .admin-user-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-table-toolbar { margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; }
    .profile-shell .workspace-heading { flex-direction: column; align-items: flex-start; }
    .profile-shell .workspace-heading.profile-page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        padding: 24px 22px 22px 28px;
    }
    .profile-page-header__badge { justify-content: flex-start; }
    .profile-shell .workspace-heading h1 { line-height: 1; }
    .profile-card__head { flex-direction: column; }
    .profile-role-pill { align-self: flex-start; }
    .profile-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .admin-user-profile-hero { min-height: 0; align-items: flex-start; padding: 27px 22px; }
    .admin-user-profile-hero__copy { padding-right: 8px; }
    .admin-user-profile-hero p { font-size: .8rem; }
    .admin-user-identity-card { align-items: flex-start; flex-wrap: wrap; padding: 18px; }
    .admin-user-profile-avatar { width: 54px; height: 54px; flex-basis: 54px; border-radius: 17px; }
    .admin-user-identity-copy { width: calc(100% - 75px); flex: 1 1 calc(100% - 75px); }
    .admin-user-identity-meta { width: calc(100% - 62px); margin-left: 0; padding: 9px 0 0; border-top: 1px solid #dce8e5; border-left: 0; }
    .admin-user-identity-card form { margin: auto 0 0 auto; }
    .admin-user-profile-stats { gap: 9px; }
    .admin-user-profile-stat { min-height: 82px; gap: 9px; padding: 11px; }
    .admin-user-profile-stat__icon { width: 35px; height: 35px; flex-basis: 35px; border-radius: 11px; }
    .admin-user-profile-stat__icon svg { width: 17px; height: 17px; }
    .admin-user-profile-stat > div > span { font-size: .62rem; }
    .admin-user-profile-stat strong { font-size: .78rem; }
    .admin-user-profile-card { padding: 18px; }
    .admin-user-bookings-table-wrap { margin-right: -18px; margin-left: -18px; }
    .admin-user-profile-details { grid-template-columns: 1fr; }
    .admin-user-profile-details > div:nth-last-child(-n+2) { border-bottom: 1px solid #edf1ef; }
    .admin-user-profile-details > div:last-child { border-bottom: 0; }
    .admin-user-profile-section-heading h2 { font-size: 1.12rem; }
    .admin-user-profile-count { padding: 5px 8px; }
    .profile-future-hero { min-height: 0; align-items: flex-start; flex-direction: column; padding: 28px 22px; }
    .profile-future-hero__identity { min-width: 0; width: 100%; }
    .profile-future-card__heading { margin-bottom: 20px; }
    .profile-future-form__actions { align-items: flex-start; flex-direction: column; gap: 12px; }
    .profile-future-save { width: 100%; }
    .profile-card { padding: 22px 18px; }
    .profile-card__head { margin-bottom: 18px; }
    .profile-field { min-height: auto; padding: 14px 14px 12px; }
    .profile-note { padding: 22px 18px; }
}
@media (max-width: 767.98px) {
    .admin-user-stats { grid-template-columns: 1fr; }.admin-table-toolbar { align-items: flex-start; flex-direction: column; }.admin-filter-controls { width: 100%; }.admin-filter-controls .form-select { flex: 1; min-width: 0; }.admin-card-heading { flex-direction: column; gap: 8px; }.admin-audit-card { padding: 20px; } }
    @media (prefers-reduced-motion: reduce) {
        .profile-shell--future *,
        .profile-shell--future *::before,
        .profile-shell--future *::after {
            animation-duration: .01ms !important;
            animation-iteration-count: 1 !important;
            scroll-behavior: auto !important;
            transition-duration: .01ms !important;
        }
    }
    :root {
    --ink: #132f3d;
    --ink-soft: #52636a;
    --deep: #08232d;
    --sea: #dff0ee;
    --mist: #f4f7f5;
    --coral: #e56d4f;
    --coral-dark: #bd4d37;
    --sun: #f2c66d;
    --line: #dce6e4;
    --white: #fff;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
html { min-height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; margin: 0; background: var(--mist); color: var(--ink); font-family: 'Manrope', sans-serif; line-height: 1.6; overflow-x: hidden; }
body > main { flex: 1 0 auto; width: 100%; display: flex; flex-direction: column; }
body > main > * { width: 100%; }
a { color: inherit; text-decoration: none; }
.site-header { position: fixed; top: 0; right: 0; left: 0; z-index: 100; width: 100%; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(220,230,228,.8); backdrop-filter: blur(16px); transition: box-shadow .25s ease; }
.site-header-spacer { flex: 0 0 74px; height: 74px; }
.site-header.is-scrolled { box-shadow: 0 8px 28px rgba(8,35,45,.08); }
.navbar { min-height: 76px; }
.navbar-brand { font-size: 1.25rem; font-weight: 800; letter-spacing: -.04em; color: var(--deep); }
.brand-mark { width: 38px; height: 38px; object-fit: contain; }
.brand-dot { color: var(--coral); }
.nav-link { color: var(--ink-soft); font-size: .86rem; font-weight: 700; }
.nav-link:hover, .nav-login:hover { color: var(--coral); }
.nav-login { font-size: .86rem; font-weight: 700; color: var(--ink-soft); }
.btn-coral { border: 0; border-radius: 3px; background: var(--coral); color: var(--white); font-weight: 800; box-shadow: 0 8px 18px rgba(229,109,79,.18); }
.btn-coral:hover { background: var(--coral-dark); color: var(--white); transform: translateY(-1px); }
.btn-outline-ink { border: 1px solid var(--ink); border-radius: 3px; font-weight: 800; }
.btn-outline-ink:hover { background: var(--ink); color: #fff; }
.hero-home { min-height: 700px; display: flex; align-items: center; position: relative; overflow: hidden; color: #fff; background: linear-gradient(90deg, rgba(8,35,45,.95) 0%, rgba(8,35,45,.7) 44%, rgba(8,35,45,.18) 100%), url('../images/background_1.png') center/cover; }
.hero-home:after { content: ''; position: absolute; right: 8%; bottom: -34px; width: 220px; height: 220px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; box-shadow: 0 0 0 36px rgba(255,255,255,.05), 0 0 0 72px rgba(255,255,255,.04); }
.hero-copy { position: relative; z-index: 1; max-width: 650px; padding: 110px 0 140px; }
.eyebrow { display: block; margin-bottom: 18px; color: var(--coral); font: 500 .7rem 'DM Mono', monospace; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow.light { color: var(--sun); }
.hero-home h1 { max-width: 690px; margin: 0 0 24px; font: 700 clamp(3.3rem, 7vw, 6.8rem)/.98 'Playfair Display', serif; letter-spacing: -.055em; }
.hero-home p { max-width: 530px; color: rgba(255,255,255,.8); font-size: 1.08rem; }
.hero-actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 12px; }
.hero-stat { position: absolute; z-index: 2; right: 6%; bottom: 38px; display: flex; gap: 28px; color: rgba(255,255,255,.9); }
.hero-stat strong { display: block; font: 700 1.5rem 'Playfair Display', serif; }.hero-stat span { font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.62); }
.section-pad { padding: 100px 0; }.section-pad-sm { padding: 70px 0; }
.section-heading { max-width: 680px; margin-bottom: 42px; }.section-heading h2 { margin: 0 0 12px; font: 700 clamp(2.3rem, 4vw, 4rem)/1.04 'Playfair Display', serif; letter-spacing: -.045em; }.section-heading p { color: var(--ink-soft); }
.section-kicker { color: var(--coral); font: 500 .7rem 'DM Mono', monospace; letter-spacing: .14em; text-transform: uppercase; }
.ticket-card, .program-card, .dashboard-card { height: 100%; background: #fff; border: 1px solid var(--line); border-radius: 4px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }.ticket-card:hover, .program-card:hover { transform: translateY(-5px); box-shadow: 0 18px 36px rgba(8,35,45,.1); }
.dashboard-card { overflow: visible; }
.ticket-top { padding: 28px; background: var(--sea); }.ticket-card:nth-child(2) .ticket-top { background: #fce6db; }.ticket-card:nth-child(3) .ticket-top { background: #fff0c9; }
.ticket-type { font: 500 .68rem 'DM Mono', monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }.ticket-name { margin: 20px 0 30px; font: 700 1.6rem 'Playfair Display', serif; }.ticket-price { font-size: 1.4rem; font-weight: 800; }.ticket-price small { font-size: .72rem; font-weight: 500; color: var(--ink-soft); }.ticket-body { padding: 22px 28px 28px; }.ticket-body p { color: var(--ink-soft); font-size: .87rem; min-height: 52px; }
.program-card img { width: 100%; height: 240px; object-fit: cover; }.program-content { padding: 24px; }.program-content h3 { margin: 0 0 8px; font: 700 1.6rem 'Playfair Display', serif; }.program-content p { color: var(--ink-soft); font-size: .88rem; }
.marquee-band { padding: 18px 0; overflow: hidden; background: var(--coral); color: #fff; }.marquee-track { display: flex; width: max-content; gap: 42px; animation: drift 28s linear infinite; font: 500 .75rem 'DM Mono', monospace; letter-spacing: .12em; text-transform: uppercase; }.marquee-track span:after { content: ' /'; margin-left: 42px; color: var(--sun); }
@keyframes drift { to { transform: translateX(-50%); } }
.visit-panel { min-height: 420px; padding: 56px; color: #fff; background: linear-gradient(90deg, rgba(8,35,45,.94), rgba(8,35,45,.32)), url('../images/3D Museum-1.png') center/cover; }.visit-panel h2 { max-width: 520px; font: 700 3.2rem/1.05 'Playfair Display', serif; }.visit-panel p { max-width: 490px; color: rgba(255,255,255,.75); }
.site-footer { position: relative; z-index: 2; flex: 0 0 auto; width: 100%; margin-top: auto; padding: 70px 0 22px; background: var(--deep); color: #fff; }.footer-brand { font: 700 2.2rem 'Playfair Display', serif; }.footer-copy { margin-top: 8px; color: rgba(255,255,255,.58); }.footer-meta { color: rgba(255,255,255,.65); font-size: .82rem; }.footer-bottom { margin-top: 58px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.42); font: .68rem 'DM Mono', monospace; }
.auth-shell { min-height: calc(100vh - 76px); padding: 60px 0; display: flex; align-items: center; }.auth-grid { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 600px; background: #fff; box-shadow: 0 24px 60px rgba(8,35,45,.08); }.auth-image { min-height: 560px; padding: 48px; display: flex; align-items: end; background-position: center; background-size: cover; position: relative; }.auth-image:after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,35,45,.9), transparent 70%); }.auth-image-copy { position: relative; z-index: 1; color: #fff; }.auth-image-copy h1 { max-width: 420px; margin: 0; font: 700 3.4rem/1.03 'Playfair Display', serif; }.auth-form-wrap { padding: 70px 56px; align-self: center; }.auth-form-wrap h2 { margin-bottom: 8px; font: 700 2.6rem 'Playfair Display', serif; }.form-label { font-size: .75rem; font-weight: 800; color: var(--ink); }.form-control, .form-select { padding: .82rem .9rem; border: 1px solid var(--line); border-radius: 2px; }.form-control:focus, .form-select:focus { border-color: var(--coral); box-shadow: 0 0 0 .2rem rgba(229,109,79,.12); }.text-link { color: var(--coral); font-weight: 800; }
.signup-shell { padding-top: 44px; padding-bottom: 44px; background: radial-gradient(circle at 10% 15%, rgba(242,198,109,.18), transparent 28%), var(--mist); }.signup-shell .auth-grid { grid-template-columns: 1fr 1fr; min-height: 650px; border: 1px solid rgba(19,47,61,.06); border-radius: 8px; overflow: hidden; }.signup-shell .auth-image { min-height: 650px; padding: 58px; }.signup-shell .auth-image-copy { max-width: 500px; }.signup-shell .auth-image-copy h1 { font-size: clamp(2.8rem, 4vw, 4.4rem); }.signup-shell .auth-image-copy p { max-width: 390px; margin: 18px 0 28px; color: rgba(255,255,255,.76); font-size: .92rem; }.signup-benefits { display: grid; gap: 12px; max-width: 310px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.22); }.signup-benefits span { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.88); font-size: .78rem; font-weight: 700; }.signup-benefits i { display: grid; width: 28px; height: 28px; place-items: center; color: var(--ink); background: var(--sun); border-radius: 50%; font: 700 .62rem 'DM Mono', monospace; font-style: normal; }.signup-shell .auth-form-wrap { padding: 62px clamp(32px, 5vw, 72px); }.signup-form-heading { display: flex; justify-content: space-between; align-items: start; gap: 20px; }.signup-form-heading .eyebrow { margin-bottom: 12px; }.signup-form-heading h2 { margin-bottom: 0; }.signup-step { color: var(--coral); font: 700 .72rem 'DM Mono', monospace; letter-spacing: .08em; }.signup-step small { color: var(--ink-soft); font-size: .62rem; }.signup-intro { max-width: 390px; margin: 14px 0 26px; color: var(--ink-soft); font-size: .86rem; }.signup-shell .form-control { background: #fbfcfb; }.signup-shell .form-control::placeholder { color: #9aa8a9; }.signup-captcha { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; background: #f7f2e5; border: 1px solid #ead9ad; border-radius: 4px; }.signup-captcha-kicker, .signup-captcha small { display: block; color: var(--ink-soft); font-size: .68rem; }.signup-captcha-kicker { margin-bottom: 3px; font: 700 .62rem 'DM Mono', monospace; letter-spacing: .1em; text-transform: uppercase; }.signup-captcha strong { display: block; color: var(--ink); font-size: 1.15rem; }.signup-captcha input { max-width: 112px; background: #fff; }.signup-submit { margin-top: 4px; padding-top: .95rem !important; padding-bottom: .95rem !important; }.signup-login-link { margin: 24px 0 0; color: var(--ink-soft); font-size: .78rem; text-align: center; }
.dashboard-hero { padding: 72px 0; background: var(--sea); }.dashboard-hero h1 { font: 700 3rem 'Playfair Display', serif; }.dashboard-card { position: relative; padding: 28px; box-shadow: 0 10px 26px rgba(8,35,45,.045); }.dashboard-card-mark { display: block; width: 34px; height: 4px; margin-bottom: 24px; border-radius: 99px; background: var(--coral); }.dashboard-card:nth-child(3n) .dashboard-card-mark { background: var(--sun); }.dashboard-card:nth-child(3n + 2) .dashboard-card-mark { background: #2f8f96; }.dashboard-card h3 { font: 700 1.45rem 'Playfair Display', serif; }.dashboard-number { font-size: clamp(1.55rem, 2.5vw, 2.25rem); font-weight: 800; letter-spacing: -.04em; }.dashboard-stats .dashboard-card { min-height: 156px; }.dashboard-insight-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); gap: 20px; }.workspace-chart-card { margin-bottom: 42px; padding: 24px 26px; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 12px 28px rgba(8,35,45,.05); }.workspace-chart-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }.workspace-chart-head h2 { margin: 0; font: 700 1.55rem 'Playfair Display', serif; }.workspace-chart-wrap { position: relative; height: 250px; }.chart-badge { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; color: #2f8f96; background: #e4f3f1; border-radius: 99px; font: 700 .68rem 'DM Mono', monospace; text-transform: uppercase; }.chart-badge-dot { width: 7px; height: 7px; border-radius: 50%; background: #2f8f96; box-shadow: 0 0 0 4px rgba(47,143,150,.12); }.dashboard-note { display: flex; flex-direction: column; justify-content: center; min-height: 300px; padding: 32px; border-radius: 4px; color: #fff; background: linear-gradient(145deg, #0b303b, #164c58); box-shadow: 0 14px 30px rgba(8,35,45,.14); }.dashboard-note .eyebrow { margin-bottom: 14px; }.dashboard-note h2 { max-width: 280px; margin: 0 0 12px; font: 700 2rem/1.08 'Playfair Display', serif; }.dashboard-note p { max-width: 330px; margin-bottom: 24px; color: rgba(255,255,255,.7); font-size: .86rem; }.dashboard-note .btn { align-self: flex-start; }.table-shell { overflow: auto; background: #fff; border: 1px solid var(--line); }.table-shell .dataTables_wrapper { width: 100%; }.table-shell .dataTables_wrapper table { border-collapse: separate; border-spacing: 0; }.table-shell .dataTables_scrollHead { border-bottom: 1px solid var(--line); background: var(--mist); }.table-shell .dataTables_scrollHeadInner, .table-shell .dataTables_scrollHeadInner table { width: 100% !important; }.table-shell .dataTables_scrollBody { overflow-x: auto !important; }.table-shell .dataTables_scrollBody table { border-top: 0; }.table-shell .dataTables_empty { padding: 32px 20px; text-align: center; color: var(--ink-soft); }.workspace-datatable-wrapper { border-radius: 0; overflow: hidden; }.dashboard-activity-table tbody tr { transition: background .2s ease; }.dashboard-activity-table tbody tr:hover { background: #fbf6ef; }.dashboard-activity-table td { padding-top: 18px; padding-bottom: 18px; border-color: #edf1ef; }.ticket-detail-scroll { max-height: 420px; overflow: auto; }.ticket-detail-scroll .table { margin: 0; min-width: 650px; width: 100%; }.table { margin: 0; min-width: 650px; width: 100%; }.table th { color: var(--ink-soft); font: 500 .68rem 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .08em; }.status-pill { display: inline-block; padding: 5px 9px; border-radius: 99px; background: var(--sea); color: var(--ink); font-size: .7rem; font-weight: 800; }
.workspace-shell { min-height: calc(100vh - 76px); flex: 1 0 auto; display: flex; flex-direction: column; background: var(--mist); padding: 36px 0 64px; }.workspace-shell > .container-xl { width: 100%; max-width: none; min-height: calc(100vh - 140px); display: flex; flex-direction: column; padding-right: clamp(24px, 4vw, 64px); padding-left: clamp(24px, 4vw, 64px); }.workspace-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: clamp(28px, 3vw, 52px); align-items: stretch; min-height: calc(100vh - 140px); flex: 1 0 auto; transition: grid-template-columns .3s ease, gap .3s ease; }.workspace-sidebar-column { display: flex; min-width: 0; transition: width .3s ease, opacity .25s ease; }.workspace-content { display: flex; flex-direction: column; min-width: 0; flex: 1 0 auto; }
.ticket-date-selector {
    display: flex; align-items: center; gap: 12px; margin: 6px 0 26px; padding: 10px 14px; background: rgba(255,255,255,.8); border: 1px solid rgba(19,47,61,.08); border-radius: 22px; box-shadow: 0 10px 22px rgba(17,35,45,.05);
}
.ticket-date-strip { display: flex; align-items: stretch; gap: 16px; overflow-x: auto; scroll-behavior: smooth; padding: 6px 4px 8px; flex: 1; scrollbar-width: thin; }
.ticket-date-strip::-webkit-scrollbar { height: 8px; }
.ticket-date-strip::-webkit-scrollbar-thumb { background: rgba(19,47,61,.18); border-radius: 999px; }
.ticket-date-pill { min-width: 150px; border: 1px solid rgba(19,47,61,.14); background: rgba(255,255,255,.9); color: var(--ink); border-radius: 18px; padding: 14px 18px; text-align: center; box-shadow: 0 8px 16px rgba(8,35,45,.04); display: flex; flex-direction: column; gap: 3px; transition: all .2s ease; }
.ticket-date-pill:hover { transform: translateY(-1px); }
.ticket-date-pill.is-active { background: linear-gradient(135deg, #6d7277, #4b5258); color: #fff; border-color: transparent; box-shadow: 0 12px 22px rgba(75,82,88,.22); }
.ticket-date-main { font-size: 1.05rem; font-weight: 800; }
.ticket-date-sub { font-size: .72rem; font-weight: 700; opacity: .8; }
.ticket-date-nav { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid rgba(19,47,61,.12); background: rgba(255,255,255,.9); color: var(--ink); flex-shrink: 0; }
.ticket-day-list { display: flex; flex-direction: column; gap: 16px; }
.ticket-day-panel { display: none; }
.ticket-day-panel.is-visible { display: block; }
.ticket-day-header { margin: 2px 0 12px; padding-left: 4px; }
.ticket-day-header h2 { margin: 0; font-size: 1.2rem; font-weight: 800; color: var(--ink); }
.visitor-ticket-row { display: grid; grid-template-columns: 92px minmax(180px, 1.6fr) minmax(110px, 1fr) minmax(120px, 1fr) minmax(120px, 1fr) 140px; align-items: center; gap: 14px; min-height: 120px; padding: 18px 20px; border-radius: 20px; box-shadow: 0 12px 26px rgba(8,35,45,.06); border: 1px solid rgba(19,47,61,.1); background: rgba(255,255,255,.82); }
.visitor-ticket-row.is-open { background: linear-gradient(135deg, rgba(120,216,222,.9), rgba(89,186,210,.9)); }
.visitor-ticket-row.is-open:nth-child(2n) { background: linear-gradient(135deg, rgba(94,190,228,.9), rgba(84,156,219,.9)); }
.visitor-ticket-row.is-open:nth-child(3n) { background: linear-gradient(135deg, rgba(117,214,205,.9), rgba(70,182,200,.9)); }
.visitor-ticket-row.is-soldout { background: linear-gradient(135deg, rgba(240,214,128,.9), rgba(232,181,75,.85)); }
.visitor-ticket-thumb { width: 72px; height: 72px; border-radius: 18px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.35); box-shadow: inset 0 0 0 1px rgba(255,255,255,.24); }
.visitor-ticket-thumb img { width: 100%; height: 100%; object-fit: cover; }
.visitor-ticket-thumb-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 2rem; color: rgba(19,47,61,.7); }
.visitor-ticket-main { min-width: 0; }
.visitor-ticket-type { margin-bottom: 6px; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(19,47,61,.7); font-weight: 800; }
.visitor-ticket-main h3 { margin: 0 0 6px; font-size: clamp(1.2rem, 2vw, 2rem); font-weight: 800; color: var(--ink); line-height: 1.2; }
.visitor-ticket-date { font-size: .82rem; color: rgba(19,47,61,.8); }
.visitor-ticket-stat-value { font-size: clamp(1.2rem, 1.8vw, 2rem); font-weight: 800; color: var(--ink); }
.visitor-ticket-stat-label { font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(19,47,61,.7); font-weight: 800; }
.visitor-ticket-price .visitor-ticket-stat-value { font-size: clamp(1rem, 1.6vw, 1.5rem); }
.visitor-ticket-diskon { font-size: 1.2rem; font-weight: 800; color: var(--ink); text-align: center; }
.visitor-ticket-action { display: flex; justify-content: flex-end; }
.btn-book-ticket { border: 0; border-radius: 14px; background: #f6b532; color: var(--ink); font-weight: 800; padding: .82rem 1.8rem; box-shadow: 0 10px 18px rgba(246,181,50,.26); }
.btn-book-ticket:hover { background: #e6a926; color: var(--ink); }
.btn-book-ticket:disabled { opacity: .8; cursor: not-allowed; }
.workspace-sidebar { width: 100%; min-height: calc(100vh - 140px); display: flex; flex-direction: column; padding: 22px 14px; background: linear-gradient(155deg, #08232d 0%, #0d3542 100%); color: #fff; border-radius: 4px; position: sticky; top: 98px; box-shadow: 0 18px 38px rgba(8,35,45,.15); }.workspace-sidebar-head { position: relative; padding: 10px 14px 25px; border-bottom: 1px solid rgba(255,255,255,.14); }.workspace-sidebar-head .eyebrow { margin-bottom: 7px; }.workspace-sidebar-head strong { font: 700 1.35rem 'Playfair Display', serif; }.sidebar-toggle { position: absolute; top: 7px; right: 5px; display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 3px; background: rgba(255,255,255,.08); color: #fff; cursor: pointer; transition: background .2s ease, transform .2s ease; }.sidebar-toggle:hover { background: var(--coral); transform: translateX(-2px); }.workspace-nav { padding-top: 18px; }.workspace-link { display: flex; align-items: center; gap: 11px; padding: 10px 14px; margin-bottom: 3px; color: rgba(255,255,255,.64); border-left: 2px solid transparent; font-size: .78rem; font-weight: 700; transition: .2s ease; }.workspace-link:hover, .workspace-link.is-active { color: #fff; background: rgba(255,255,255,.09); border-left-color: var(--coral); }.menu-icon { width: 18px; color: var(--sun); font: 500 .9rem 'DM Mono', monospace; text-align: center; }.workspace-sidebar-foot { margin-top: auto; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); }.workspace-logout { color: #f3a18d; }.workspace-content { min-width: 0; padding-bottom: 22px; }.workspace-heading { display: flex; justify-content: space-between; align-items: end; gap: 18px; min-height: 160px; padding: 32px 0 42px; }.workspace-heading h1 { margin: 0 0 10px; font: 700 clamp(2.6rem, 5vw, 4.6rem)/1 'Playfair Display', serif; letter-spacing: -.05em; }.workspace-heading p { margin: 0; color: var(--ink-soft); }.workspace-section-title { font: 700 2rem 'Playfair Display', serif; }.profile-card, .profile-note { box-shadow: 0 15px 34px rgba(8,35,45,.06); }.profile-name { font: 700 2.5rem 'Playfair Display', serif; }.profile-label { display: block; margin-bottom: 5px; color: var(--ink-soft); font: 500 .68rem 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .08em; }.profile-note { border-top: 3px solid var(--coral); }.profile-note h3 { font: 700 1.5rem 'Playfair Display', serif; }.workspace-sidebar-hidden .workspace-layout { grid-template-columns: 0 minmax(0, 1fr); gap: 0; }.workspace-sidebar-hidden .workspace-sidebar-column { width: 0; opacity: 0; overflow: hidden; pointer-events: none; }.workspace-sidebar-hidden .workspace-content { width: 100%; }.workspace-sidebar-hidden .sidebar-toggle { transform: rotate(180deg); }.sidebar-reopen { position: fixed; z-index: 15; top: 108px; left: 16px; display: none; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 4px; background: var(--deep); color: #fff; box-shadow: 0 8px 20px rgba(8,35,45,.2); }.workspace-sidebar-hidden .sidebar-reopen { display: grid; }
.rating-picker { display: flex; gap: 8px; }.rating-picker button { border: 0; padding: 0; background: transparent; color: var(--line); font-size: 2rem; line-height: 1; cursor: pointer; }.rating-picker button.is-active { color: var(--sun); }
.workspace-page-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }.empty-state { padding: 48px 20px !important; color: var(--ink-soft); text-align: center; }.booking-summary { padding: 22px; background: var(--sea); border: 1px solid var(--line); border-radius: 4px; }.booking-summary h3 { margin-bottom: 24px; font: 700 1.45rem 'Playfair Display', serif; }.booking-summary .dashboard-number { font-size: 1.5rem; }
.user-name-link { color: var(--ink); font-weight: 800; }.user-name-link:hover { color: var(--coral); }.user-actions { min-width: 132px; }.user-actions .form-select { min-width: 125px; font-size: .72rem; }.user-actions .btn { width: 100%; font-size: .68rem; }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }.reveal.is-visible { opacity: 1; transform: none; }
@media (max-width: 1200px) {
    .visitor-ticket-row { grid-template-columns: 92px minmax(180px, 1.4fr) repeat(2, minmax(110px, 1fr)) 120px 120px; }
}
@media (max-width: 991.98px) {
    .hero-home { min-height: 620px; }.hero-stat { position: relative; right: auto; bottom: auto; margin-top: 48px; }.auth-grid { grid-template-columns: 1fr; }.auth-image { min-height: 330px; }.auth-form-wrap { padding: 48px 32px; }.workspace-shell { padding-top: 24px; }.workspace-shell > .container-xl, .workspace-layout { min-height: auto; }.workspace-layout, .workspace-sidebar-hidden .workspace-layout { grid-template-columns: 1fr; gap: 18px; }.workspace-sidebar-column { display: block; }.workspace-sidebar { min-height: auto; position: static; }.workspace-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }.workspace-sidebar-foot { display: flex; gap: 10px; }.workspace-sidebar-foot .workspace-link { flex: 1; }.workspace-sidebar-hidden .workspace-sidebar-column { display: none; }.sidebar-reopen { top: 92px; }.dashboard-insight-grid { grid-template-columns: 1fr; }.dashboard-note { min-height: 240px; }
    .visitor-ticket-row { grid-template-columns: 80px 1fr; gap: 12px; }
    .visitor-ticket-quota, .visitor-ticket-price, .visitor-ticket-diskon, .visitor-ticket-action { justify-self: start; }
    .visitor-ticket-action { width: 100%; }
    .btn-book-ticket { width: 100%; }
}
@media (max-width: 575.98px) { .hero-copy { padding: 80px 0 100px; }.hero-home h1 { font-size: 3rem; }.hero-stat { gap: 16px; }.section-pad { padding: 70px 0; }.visit-panel { padding: 34px 26px; }.visit-panel h2 { font-size: 2.4rem; }.auth-image-copy h1 { font-size: 2.5rem; } .ticket-date-selector { padding: 10px 10px; } .ticket-date-pill { min-width: 128px; } }
.signup-shell .auth-grid { animation: signup-rise .65s ease both; }
@keyframes signup-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (max-width: 991.98px) { .signup-shell .auth-grid { grid-template-columns: 1fr; }.signup-shell .auth-image { min-height: 360px; }.signup-shell .auth-form-wrap { padding: 48px 32px; } }
@media (max-width: 575.98px) { .signup-shell { padding-top: 24px; padding-bottom: 24px; }.signup-shell .auth-image { min-height: 390px; padding: 34px 26px; }.signup-shell .auth-image-copy h1 { font-size: 2.8rem; }.signup-shell .auth-form-wrap { padding: 40px 22px; }.signup-captcha { align-items: stretch; flex-direction: column; gap: 12px; }.signup-captcha input { max-width: none; }.signup-form-heading h2 { font-size: 2.2rem; } }
.workspace-chart-card { margin-bottom: 42px; padding: 24px 26px; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 12px 28px rgba(8,35,45,.05); }.workspace-chart-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }.workspace-chart-head h2 { margin: 0; font: 700 1.55rem 'Playfair Display', serif; }.workspace-chart-wrap { position: relative; height: 250px; }
.orders-filter-panel { margin-bottom: 24px; padding: 24px 26px; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 10px 24px rgba(8,35,45,.04); }.orders-filter-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 20px; }.orders-filter-heading .eyebrow { margin-bottom: 7px; }.orders-filter-heading h2 { margin: 0; font: 700 1.45rem 'Playfair Display', serif; }.orders-filter-panel .form-label { margin-bottom: 7px; }.orders-filter-panel .form-control, .orders-filter-panel .form-select { background-color: #fbfcfb; }.orders-filter-panel .form-control:focus, .orders-filter-panel .form-select:focus { background-color: #fff; }.orders-table { min-width: 760px; }.orders-table td:first-child { color: var(--ink); font-weight: 800; }.order-type-badge { display: inline-flex; align-items: center; padding: 6px 10px; border-radius: 99px; font-size: .68rem; font-weight: 800; white-space: nowrap; }.order-type-ticket { color: #9b4b37; background: #fce6db; }.order-type-program { color: #216f73; background: #e1f2ef; }.order-type-ticket_program { color: #86651e; background: #fff0c9; }.orders-table_wrapper .dataTables_paginate { padding: 14px 18px; }.orders-table_wrapper .paginate_button { color: var(--ink) !important; border: 0 !important; background: transparent !important; }.orders-table_wrapper .paginate_button.current { color: #fff !important; background: var(--ink) !important; border-radius: 3px; }.orders-table_wrapper .paginate_button:hover { color: var(--ink) !important; background: var(--sea) !important; }
.workspace-datatable-wrapper .dataTables_paginate { padding: 14px 18px; }.workspace-datatable-wrapper .paginate_button { color: var(--ink) !important; border: 0 !important; background: transparent !important; }.workspace-datatable-wrapper .paginate_button.current { color: #fff !important; background: var(--ink) !important; border-radius: 3px; }.workspace-datatable-wrapper .paginate_button:hover { color: var(--ink) !important; background: var(--sea) !important; }
@media (max-width: 575.98px) { .orders-filter-panel { padding: 20px; }.orders-filter-heading { flex-direction: column; gap: 8px; } }
.workspace-shell--visitor-orders {
    --orders-accent: #159b9b;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 92% 4%, rgba(46, 190, 184, .12), transparent 32rem),
        radial-gradient(ellipse at 5% 38%, rgba(240, 127, 94, .09), transparent 28rem),
        repeating-linear-gradient(0deg, rgba(17, 73, 83, .018) 0 1px, transparent 1px 34px),
        linear-gradient(180deg, #f3faf9, #f3f7fa 56%, #edf5f3);
}
.workspace-shell--visitor-orders > .container-xl { position: relative; z-index: 1; }
.workspace-shell--visitor-orders .workspace-heading {
    position: relative;
    align-items: center;
    min-height: 0;
    margin-bottom: 24px;
    padding: 28px 32px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(ellipse at 88% 12%, rgba(74, 218, 203, .22), transparent 38%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.03) 0 1px, transparent 1px 13px),
        linear-gradient(112deg, #092e3c, #105765 62%, #146d73);
    border: 1px solid rgba(22, 134, 143, .28);
    border-radius: 12px;
    box-shadow: 0 18px 38px rgba(9, 63, 76, .16);
}
.workspace-shell--visitor-orders .workspace-heading::before {
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, #45d8c0, #72d1e0, #f18d69);
}
.workspace-shell--visitor-orders .workspace-heading > div,
.workspace-shell--visitor-orders .orders-online { position: relative; z-index: 1; }
.workspace-shell--visitor-orders .workspace-heading .eyebrow { color: #82e6d7; }
.workspace-shell--visitor-orders .workspace-heading h1 {
    color: #fff;
    font-family: 'Manrope', sans-serif;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -.045em;
}
.workspace-shell--visitor-orders .workspace-heading p { color: rgba(255,255,255,.72); }
.workspace-shell--visitor-orders .orders-online {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 13px;
    color: #9af0d6;
    background: rgba(73, 213, 172, .11);
    border: 1px solid rgba(130, 239, 203, .28);
    border-radius: 7px;
}
.workspace-shell--visitor-orders .orders-online span {
    width: 7px;
    height: 7px;
    background: #5ce0ac;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(92, 224, 172, .13);
}
.workspace-shell--visitor-orders .orders-filter-panel {
    padding: 23px 25px;
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(241,250,249,.96));
    border: 1px solid rgba(21, 128, 141, .15);
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(14, 65, 77, .065);
}
.workspace-shell--visitor-orders .orders-filter-heading .eyebrow { color: #168f91; }
.workspace-shell--visitor-orders .orders-filter-heading h2 {
    color: #103d4a;
    font-family: 'Manrope', sans-serif;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -.025em;
}
.workspace-shell--visitor-orders .orders-filter-panel .form-control,
.workspace-shell--visitor-orders .orders-filter-panel .form-select {
    border-color: rgba(20, 112, 126, .18);
    border-radius: 7px;
}
.workspace-shell--visitor-orders .orders-filter-panel .form-control:focus,
.workspace-shell--visitor-orders .orders-filter-panel .form-select:focus {
    border-color: #25aaa4;
    box-shadow: 0 0 0 3px rgba(37, 170, 164, .13);
}
.workspace-shell--visitor-orders .orders-filter-panel .btn-coral {
    min-height: 42px;
    color: #073b43;
    background: linear-gradient(110deg, #70e2c9, #7dcde0);
    border: 0;
    border-radius: 7px;
    font-weight: 800;
}
.workspace-shell--visitor-orders .table-shell {
    border: 1px solid rgba(20, 112, 126, .14);
    border-radius: 12px;
    box-shadow: 0 15px 34px rgba(14, 65, 77, .075);
}
.workspace-shell--visitor-orders .orders-table { min-width: 1040px; }
.workspace-shell--visitor-orders .orders-table thead th {
    padding-top: 15px;
    padding-bottom: 15px;
    color: #176d77;
    background: linear-gradient(100deg, #e8f8f5, #eef5fb);
    border-bottom: 1px solid rgba(20, 112, 126, .15);
    font-size: .62rem;
    white-space: nowrap;
}
.workspace-shell--visitor-orders .orders-table tbody td {
    padding-top: 15px;
    padding-bottom: 15px;
    border-color: rgba(20, 112, 126, .09);
    vertical-align: middle;
}
.workspace-shell--visitor-orders .orders-table tbody tr { transition: background .18s ease; }
.workspace-shell--visitor-orders .orders-table tbody tr:hover { background: #f0faf8; }
.workspace-shell--visitor-orders .orders-table td:first-child {
    color: #103d4a;
    white-space: nowrap;
}
.workspace-shell--visitor-orders .order-number-mark {
    display: inline-grid;
    width: 31px;
    height: 31px;
    margin-right: 7px;
    place-items: center;
    color: #168f91;
    background: #e4f8f3;
    border: 1px solid rgba(22, 143, 145, .12);
    border-radius: 8px;
    vertical-align: middle;
}
.workspace-shell--visitor-orders .order-date-value,
.workspace-shell--visitor-orders .order-participant-count,
.workspace-shell--visitor-orders .order-payment-link,
.workspace-shell--visitor-orders .order-payment-free {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}
.workspace-shell--visitor-orders .order-date-value i,
.workspace-shell--visitor-orders .order-participant-count i { color: #178f91; }
.workspace-shell--visitor-orders .order-date-time {
    display: block;
    margin: 3px 0 0 22px;
    color: #84979a;
    font-size: .68rem;
}
.workspace-shell--visitor-orders .order-total { color: #103d4a; white-space: nowrap; }
.workspace-shell--visitor-orders .order-type-badge { border-radius: 6px; }
.workspace-shell--visitor-orders .orders-status-icon {
    display: inline-grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 50%;
    font-size: 1.05rem;
}
.workspace-shell--visitor-orders .orders-status-icon.is-success { color: #128657; background: #e4f7ed; }
.workspace-shell--visitor-orders .orders-status-icon.is-danger { color: #cf4e4d; background: #fff0e9; }
.workspace-shell--visitor-orders .orders-status-icon.is-pending { color: #a77513; background: #fff5d9; }
.workspace-shell--visitor-orders .orders-status-icon.is-neutral { color: #52717a; background: #eaf2f3; }
.workspace-shell--visitor-orders .order-payment-link {
    color: #118e91;
    font-size: .75rem;
    font-weight: 800;
}
.workspace-shell--visitor-orders .order-payment-link:hover { color: #0a626e; }
.workspace-shell--visitor-orders .order-payment-free { color: #168657; font-size: .75rem; font-weight: 800; }
.workspace-shell--visitor-orders .workspace-datatable-wrapper .dataTables_paginate .paginate_button.current {
    background: linear-gradient(110deg, #138f91, #187da0) !important;
}
@media (max-width: 767.98px) {
    .workspace-shell--visitor-orders .workspace-heading { align-items: flex-start; flex-direction: column; padding: 24px 21px; }
    .workspace-shell--visitor-orders .orders-filter-panel { padding: 20px; }
    .workspace-shell--visitor-orders .orders-filter-heading { align-items: flex-start; }
}
.program-overview { display: grid; grid-template-columns: minmax(150px, .7fr) minmax(190px, .9fr) minmax(260px, 1.4fr); gap: 1px; margin-bottom: 32px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 12px 26px rgba(8,35,45,.05); }.program-overview > div { min-height: 126px; padding: 22px 24px; background: #fff; }.program-overview .eyebrow { margin-bottom: 12px; }.program-overview strong { display: block; color: var(--ink); font-size: 2rem; line-height: 1; letter-spacing: -.04em; }.program-overview > div > span:last-child { display: block; margin-top: 8px; color: var(--ink-soft); font-size: .76rem; }.program-overview-note { display: flex; align-items: center; gap: 12px; color: var(--ink-soft); font-size: .82rem; line-height: 1.5; }.program-overview-note i { color: var(--coral); font-size: 1.2rem; }.program-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }.program-card-modern { display: flex; flex-direction: column; border-radius: 8px; box-shadow: 0 12px 28px rgba(8,35,45,.06); }.program-card-modern:hover { transform: translateY(-4px); box-shadow: 0 20px 38px rgba(8,35,45,.12); }.program-image-wrap { position: relative; height: 230px; overflow: hidden; background: var(--sea); }.program-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }.program-card-modern:hover .program-image-wrap img { transform: scale(1.04); }.program-image-label { position: absolute; top: 16px; left: 16px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; color: var(--ink); background: rgba(255,255,255,.9); border-radius: 4px; font: 700 .66rem 'DM Mono', monospace; letter-spacing: .04em; text-transform: uppercase; }.program-content { display: flex; flex: 1; flex-direction: column; padding: 25px 26px 26px; }.program-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }.program-card-head h2 { margin: 6px 0 0; font: 700 1.55rem/1.1 'Playfair Display', serif; }.program-price { flex-shrink: 0; text-align: right; }.program-price span { display: block; color: var(--ink-soft); font-size: .62rem; }.program-price strong { display: block; margin-top: 3px; color: var(--coral-dark); font-size: 1rem; white-space: nowrap; }.program-description { min-height: 52px; margin: 18px 0; color: var(--ink-soft); font-size: .84rem; line-height: 1.65; }.program-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 22px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: .72rem; }.program-meta span { display: inline-flex; align-items: center; gap: 6px; }.program-meta i { color: var(--coral); }.program-booking-form { margin-top: auto; }.program-booking-form .form-label { margin-bottom: 7px; }.program-booking-controls { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 10px; }.program-booking-controls .btn { white-space: nowrap; }.program-empty-state { grid-column: 1 / -1; padding: 64px 28px; text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 12px 26px rgba(8,35,45,.04); }.program-empty-state h2 { margin: 0 0 10px; font: 700 2rem 'Playfair Display', serif; }.program-empty-state p { max-width: 440px; margin: 0 auto; color: var(--ink-soft); font-size: .88rem; }
.program-card-full { border-color: #ead9ad; }.program-card-full .program-image-wrap:after { content: 'Kuota penuh'; position: absolute; right: 16px; bottom: 16px; padding: 7px 10px; color: var(--ink); background: var(--sun); border-radius: 4px; font: 700 .66rem 'DM Mono', monospace; text-transform: uppercase; }.program-booking-controls .form-select:disabled { color: var(--ink-soft); background-color: #f4f5f2; cursor: not-allowed; }.program-booking-controls .btn:disabled { color: var(--ink-soft); background: #e4e6df; border-color: #e4e6df; box-shadow: none; }
@media (max-width: 991.98px) { .program-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }.program-overview-note { grid-column: 1 / -1; min-height: auto; }.program-grid { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .program-overview { grid-template-columns: 1fr 1fr; }.program-overview > div { padding: 18px; }.program-overview strong { font-size: 1.55rem; }.program-overview-note { grid-column: 1 / -1; }.program-card-head { flex-direction: column; gap: 12px; }.program-price { text-align: left; }.program-image-wrap { height: 200px; }.program-content { padding: 22px 20px 20px; }.program-card-head h2 { font-size: 1.35rem; }.program-description { min-height: 0; }.program-booking-controls { grid-template-columns: 1fr; }.program-booking-controls .btn { width: 100%; } }
.visitor-programs-page { background: radial-gradient(ellipse at 90% 4%,rgba(62,166,159,.1),transparent 30%),linear-gradient(180deg,#f8faf8 0%,var(--mist) 52%,#edf4f2 100%); }
.visitor-programs-page .workspace-content { gap: 22px; }
.visitor-programs-hero { min-height: 252px; padding-right: clamp(260px,32vw,390px); }
.visitor-programs-hero .programs-hero__content { max-width: 620px; }
.visitor-programs-hero .programs-hero__art { right: 7%; }
.visitor-programs-hero__badge { display: inline-flex; align-items: center; gap: 7px; margin-top: 18px; padding: 8px 11px; color: #d6fff2; background: rgba(154,240,220,.1); border: 1px solid rgba(154,240,220,.2); border-radius: 6px; font-size: .68rem; font-weight: 700; }
.visitor-programs-hero__badge i { color: #ffd27e; }
.visitor-programs-page .program-overview { margin-bottom: 0; background: rgba(35,103,105,.14); border-color: rgba(35,103,105,.12); border-radius: 12px; box-shadow: 0 15px 32px rgba(8,35,45,.055); }
.visitor-programs-page .program-overview > div { min-height: 136px; background: linear-gradient(145deg,#fff,#f8fcfa); }
.visitor-programs-page .program-overview > div:nth-child(2) { background: linear-gradient(145deg,#fff,#fffbf0); }
.visitor-program-stat-heading { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; }
.visitor-programs-page .program-overview .eyebrow { margin: 0; color: #547078; font: 700 .6rem 'DM Mono',monospace; letter-spacing: .08em; text-transform: uppercase; }
.visitor-program-stat-icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; border-radius: 9px; font-size: .92rem; }
.visitor-program-stat-icon--mint { color: #137c70; background: #e0f6ee; border: 1px solid #d0eee4; }
.visitor-program-stat-icon--gold { color: #a7771d; background: #fff2cf; border: 1px solid #f4e6bd; }
.visitor-programs-page .program-overview strong { color: #133c47; font-size: 2.15rem; }
.visitor-programs-page .program-overview-note { color: #425f67; background: linear-gradient(135deg,#e8f7f2,#edf7fa); }
.visitor-programs-page .program-overview-note i { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; color: #fff; background: linear-gradient(145deg,#188f87,#45b59b); border-radius: 11px; box-shadow: 0 7px 16px rgba(24,143,135,.2); }
.visitor-programs-page .program-grid { gap: 20px; }
.visitor-programs-page .program-card-modern { overflow: hidden; background: linear-gradient(145deg,#fff,#fbfdfc); border: 1px solid rgba(24,79,89,.1); border-radius: 13px; box-shadow: 0 14px 32px rgba(8,35,45,.07); transition: transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.visitor-programs-page .program-card-modern:hover { border-color: rgba(47,143,150,.32); box-shadow: 0 22px 42px rgba(8,35,45,.13); transform: translateY(-5px); }
.visitor-programs-page .program-image-wrap { height: 244px; background: linear-gradient(135deg,#103c49,#248c83); }
.visitor-programs-page .program-image-wrap::before { position: absolute; z-index: 1; inset: 0; content: ''; background: linear-gradient(180deg,rgba(7,33,43,.02) 35%,rgba(7,33,43,.42)); pointer-events: none; }
.visitor-programs-page .program-card-full .program-image-wrap::after { content: none; }
.visitor-programs-page .program-image-label { top: 14px; left: 14px; z-index: 1; color: #164651; background: rgba(247,255,251,.94); border: 1px solid rgba(255,255,255,.68); border-radius: 99px; box-shadow: 0 5px 15px rgba(8,35,45,.12); }
.visitor-program-capacity { position: absolute; right: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid transparent; border-radius: 8px; box-shadow: 0 7px 18px rgba(8,35,45,.17); font: 800 .62rem 'DM Mono',monospace; letter-spacing: .04em; text-transform: uppercase; backdrop-filter: blur(10px); }
.visitor-program-capacity--available { color: #eafff7; background: rgba(14,112,95,.84); border-color: rgba(174,255,224,.44); }
.visitor-program-capacity--available i { color: #9bf2cb; }
.visitor-program-capacity--full { color: #332713; background: rgba(255,211,112,.95); border-color: rgba(255,242,198,.9); }
.visitor-program-capacity--full i { color: #b9663e; }
.visitor-program-image-pulse { width: 6px; height: 6px; background: #31bd8e; border-radius: 50%; box-shadow: 0 0 0 3px rgba(49,189,142,.14); }
.visitor-programs-page .program-content { padding: 23px 24px 24px; }
.visitor-programs-page .program-card-head { align-items: center; gap: 12px; }
.visitor-programs-page .section-kicker { color: #25877f; font: 700 .59rem 'DM Mono',monospace; letter-spacing: .07em; text-transform: uppercase; }
.visitor-programs-page .section-kicker i { color: #d19b37; }
.visitor-programs-page .program-card-head h2 { color: #163b45; font-size: 1.52rem; line-height: 1.17; text-wrap: balance; }
.visitor-programs-page .program-price { padding: 10px 12px; background: radial-gradient(circle at 100% 0,rgba(242,198,109,.22),transparent 65%),linear-gradient(145deg,#fffaf0,#fff4dc); border: 1px solid #f0dfb7; border-radius: 10px; box-shadow: 0 5px 14px rgba(178,130,49,.08); }
.visitor-programs-page .program-price span { display: flex; align-items: center; justify-content: flex-end; gap: 5px; color: #81714f; }
.visitor-programs-page .program-price span i { color: #c78b2d; }
.visitor-programs-page .program-price strong { color: #b84f3d; font-size: .96rem; }
.visitor-programs-page .program-description { position: relative; margin: 17px 0; padding: 13px 15px; overflow: hidden; color: #4b6870; background: linear-gradient(120deg,#f1f9f6,#f3f7fb); border: 1px solid #e5efec; border-left: 3px solid #38a995; border-radius: 0 9px 9px 0; }
.visitor-programs-page .program-description p:last-child,
.visitor-programs-page .program-description ul:last-child { margin-bottom: 0; }
.visitor-programs-page .program-description ul { padding-left: 1.2rem; }
.visitor-programs-page .program-description li::marker { color: #279588; }
.visitor-programs-page .program-meta { gap: 8px; margin-bottom: 18px; padding: 12px 0; border-color: #e1ece8; }
.visitor-programs-page .program-meta span { padding: 7px 10px; color: #315e62; background: linear-gradient(145deg,#e9f8f2,#f4fbf7); border: 1px solid #d7eee5; border-radius: 99px; font-size: .66rem; font-weight: 700; }
.visitor-programs-page .program-meta span + span { color: #526281; background: linear-gradient(145deg,#eff3fc,#f7f8fd); border-color: #dfe6f4; }
.visitor-programs-page .program-meta i { color: #198c85; }
.visitor-programs-page .program-meta span + span i { color: #758ac1; }
.visitor-programs-page .program-booking-form .form-label { display: flex; align-items: center; gap: 7px; color: #284c55; font-size: .72rem; font-weight: 800; }
.visitor-programs-page .program-booking-form .form-label i { color: #188e83; font-size: .9rem; }
.visitor-programs-page .visitor-program-form-hint { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; color: #7c9092; font-size: .6rem; font-weight: 700; }
.visitor-programs-page .visitor-program-form-hint i { color: #d29b3c; }
.visitor-programs-page .program-booking-controls .form-select { min-height: 44px; border-color: #dce9e4; border-radius: 8px; }
.visitor-programs-page .program-booking-controls .form-select:disabled { color: #687b7d; background: linear-gradient(120deg,#eef4f1,#f6f7f4); border-color: #dce7e2; opacity: 1; }
.visitor-programs-page .program-booking-controls .form-select:focus { border-color: #42a899; box-shadow: 0 0 0 .2rem rgba(47,143,150,.14); }
.visitor-programs-page .program-booking-controls .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; color: #fff; background: linear-gradient(135deg,#e87658,#cc5945); border: 0; border-radius: 8px; box-shadow: 0 7px 16px rgba(204,89,69,.18); font-size: .72rem; font-weight: 800; transition: transform .2s ease,box-shadow .2s ease; }
.visitor-programs-page .program-booking-controls .btn:hover:not(:disabled) { box-shadow: 0 11px 20px rgba(204,89,69,.25); transform: translateY(-2px); }
.visitor-programs-page .program-booking-controls .btn:disabled { color: #718080; background: #e8eeeb; box-shadow: none; }
.visitor-programs-page .program-empty-state { padding: 52px 28px; background: radial-gradient(circle at 50% 0,rgba(67,207,190,.1),transparent 19rem),linear-gradient(145deg,#fff,#f0f9f8); border-color: rgba(20,112,126,.15); border-radius: 13px; }
.visitor-programs-page .program-empty-state .eyebrow { color: #168f91; font: 700 .63rem 'DM Mono',monospace; letter-spacing: .1em; text-transform: uppercase; }
.visitor-programs-page .program-empty-state h2 { color: #153d47; }
@media (max-width: 767.98px) {
    .visitor-programs-hero { min-height: 226px; padding: 28px 23px; }
    .visitor-programs-hero .programs-hero__content { max-width: 72%; }
    .visitor-programs-hero .programs-hero__art { right: -8px; width: 165px; height: 175px; opacity: .62; }
    .visitor-programs-hero .programs-checklist { width: 112px; }
    .visitor-programs-hero .programs-hero__code { right: 0; font-size: .4rem; }
    .visitor-programs-hero .programs-hero__index { right: 12px; bottom: 9px; }
    .visitor-programs-page .program-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .visitor-programs-page .program-overview-note { grid-column: 1/-1; }
}
@media (max-width: 575.98px) {
    .visitor-programs-hero { min-height: 222px; padding: 24px 19px; }
    .visitor-programs-hero .programs-hero__content { max-width: 100%; }
    .visitor-programs-hero h1 { max-width: 72%; font-size: 2rem; }
    .visitor-programs-hero p { max-width: 68%; font-size: .78rem; }
    .visitor-programs-hero__badge { margin-top: 12px; padding: 7px 9px; font-size: .61rem; }
    .visitor-programs-hero .programs-hero__art { top: auto; right: -20px; bottom: -36px; width: 132px; height: 145px; opacity: .42; transform: none; }
    .visitor-programs-hero .programs-checklist { width: 92px; }
    .visitor-programs-hero .programs-hero__code { display: none; }
    .visitor-programs-page .program-overview > div { min-height: 125px; padding: 15px; }
    .visitor-programs-page .program-overview strong { font-size: 1.65rem; }
    .visitor-programs-page .program-grid { gap: 16px; }
    .visitor-programs-page .program-image-wrap { height: 205px; }
    .visitor-programs-page .program-content { padding: 20px 18px; }
    .visitor-programs-page .program-card-head { align-items: flex-start; flex-direction: column; }
    .visitor-programs-page .program-price { text-align: left; }
    .visitor-programs-page .program-price span { justify-content: flex-start; }
    .visitor-programs-page .visitor-program-form-hint { font-size: .56rem; }
    .visitor-programs-page .program-empty-state { padding: 40px 20px; }
}
.myticket-overview { display: grid; grid-template-columns: repeat(3, minmax(130px, .7fr)) minmax(260px, 1.4fr); gap: 1px; margin-bottom: 32px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 12px 26px rgba(8,35,45,.05); }.myticket-overview > div { min-height: 126px; padding: 22px 24px; background: #fff; }.myticket-overview .eyebrow { margin-bottom: 12px; }.myticket-overview strong { display: block; color: var(--ink); font-size: 2rem; line-height: 1; letter-spacing: -.04em; }.myticket-overview > div > span:last-child { display: block; margin-top: 8px; color: var(--ink-soft); font-size: .76rem; }.myticket-overview-note { display: flex; align-items: center; gap: 12px; color: var(--ink-soft); font-size: .82rem; line-height: 1.5; }.myticket-overview-note i { color: var(--coral); font-size: 1.2rem; }.myticket-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }.myticket-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 12px 28px rgba(8,35,45,.06); transition: transform .25s ease, box-shadow .25s ease; }.myticket-card:hover { transform: translateY(-4px); box-shadow: 0 20px 38px rgba(8,35,45,.12); }.myticket-card-banner { display: flex; align-items: center; gap: 14px; min-height: 116px; padding: 22px 24px; color: #fff; background: linear-gradient(135deg, #0a2d38, #175361); }.myticket-card-banner .eyebrow { margin-bottom: 6px; color: var(--sun); }.myticket-card-banner strong { display: block; max-width: 230px; overflow: hidden; color: #fff; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }.myticket-card-icon { display: grid; width: 48px; height: 48px; flex-shrink: 0; place-items: center; color: var(--ink); background: var(--sun); border-radius: 8px; font-size: 1.35rem; }.myticket-status-badge { margin-left: auto; padding: 7px 10px; color: var(--ink); background: var(--sea); border-radius: 99px; font-size: .66rem; font-weight: 800; white-space: nowrap; }.myticket-status-waiting_payment .myticket-status-badge, .myticket-status-pending .myticket-status-badge { color: #86651e; background: #fff0c9; }.myticket-status-cancelled .myticket-status-badge, .myticket-status-expired .myticket-status-badge { color: #8d4435; background: #fce6db; }.myticket-card-body { padding: 24px 26px 26px; }.myticket-card-topline { display: flex; justify-content: space-between; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }.myticket-card-topline .section-kicker { display: block; margin-bottom: 6px; }.myticket-card-topline > div:first-child strong { color: var(--ink); font-size: .84rem; }.myticket-total { text-align: right; }.myticket-total span { display: block; color: var(--ink-soft); font-size : .66rem; }.myticket-total strong { display: block; margin-top: 4px; color: var(--coral-dark); font-size: 1.05rem; }.myticket-card-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 16px 0; color: var(--ink-soft); font-size: .72rem; }.myticket-card-meta span { display: inline-flex; align-items: center; gap: 6px; }.myticket-card-meta i { color: var(--coral); }.myticket-items { padding: 14px 0 18px; border-top: 1px solid var(--line); }.myticket-items .section-kicker { display: block; margin-bottom: 8px; }.myticket-items div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; color: var(--ink); font-size: .8rem; }.myticket-items div span { color: var(--ink-soft); font-weight: 700; }.myticket-items small { display: block; margin-top: 4px; color: var(--ink-soft); }.myticket-card-actions { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 18px; border-top: 1px solid var(--line); }.myticket-card-actions .btn { flex: 1; min-width: 130px; }.myticket-empty-state { grid-column: 1 / -1; padding: 64px 28px; text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 12px 26px rgba(8,35,45,.04); }.myticket-empty-state h2 { margin: 0 0 10px; font: 700 2rem 'Playfair Display', serif; }.myticket-empty-state p { max-width: 440px; margin: 0 auto 22px; color: var(--ink-soft); font-size: .88rem; }
.myticket-card-icon.has-image { overflow: hidden; padding: 0; background: #fff; }.myticket-card-icon img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 991.98px) { .myticket-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); }.myticket-overview-note { grid-column: 1 / -1; min-height: auto; }.myticket-list { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .myticket-overview { grid-template-columns: 1fr 1fr; }.myticket-overview > div { padding: 18px; }.myticket-overview strong { font-size: 1.55rem; }.myticket-overview-note { grid-column: 1 / -1; }.myticket-card-banner { padding: 18px; }.myticket-card-banner strong { max-width: 150px; }.myticket-status-badge { align-self: flex-start; }.myticket-card-body { padding: 20px; }.myticket-card-topline { flex-direction: column; gap: 12px; }.myticket-total { text-align: left; }.myticket-card-actions .btn { flex: 1 1 100%; } }
.myticket-detail-heading { padding-bottom: 30px; }.detail-transaction-hero { display: flex; align-items: center; gap: 18px; min-height: 142px; padding: 26px 30px; color: #fff; background: linear-gradient(135deg, #0a2d38, #175361); border-radius: 8px; box-shadow: 0 16px 32px rgba(8,35,45,.14); }.detail-transaction-icon { display: grid; width: 64px; height: 64px; flex-shrink: 0; place-items: center; color: var(--ink); background: var(--sun); border-radius: 10px; font-size: 1.8rem; }.detail-transaction-copy { min-width: 0; }.detail-transaction-copy .eyebrow { margin-bottom: 7px; color: var(--sun); }.detail-transaction-copy h2 { margin: 0; overflow: hidden; font: 700 clamp(1.25rem, 2vw, 1.8rem)/1.1 'Playfair Display', serif; text-overflow: ellipsis; white-space: nowrap; }.detail-transaction-copy p { margin: 8px 0 0; color: rgba(255,255,255,.7); font-size: .8rem; }.detail-transaction-status { margin-left: auto; padding-left: 24px; border-left: 1px solid rgba(255,255,255,.2); text-align: right; }.detail-transaction-status span { display: block; color: rgba(255,255,255,.65); font-size: .68rem; }.detail-transaction-status strong { display: block; margin-top: 5px; color: var(--sun); font-size: .9rem; }.detail-card { border-radius: 8px; box-shadow: 0 10px 24px rgba(8,35,45,.05); }.detail-card .profile-label { display: block; margin-bottom: 5px; color: var(--ink-soft); font: 700 .63rem 'DM Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }.detail-card .profile-label + div { color: var(--ink); font-size: .86rem; }.detail-total-card { display: flex; flex-direction: column; justify-content: center; background: #fffaf0; border-color: #ead9ad; }.detail-total-card .dashboard-number { color: var(--coral-dark); font-size: clamp(1.8rem, 3vw, 2.5rem); }.detail-items-table { min-width: 560px; }.detail-items-table td { padding-top: 18px; padding-bottom: 18px; border-color: #edf1ef; }.detail-items-table tbody tr:hover { background: #fbf6ef; }.detail-action-card { border-left: 4px solid var(--coral); }.detail-boarding-card { border-left-color: #2f8f96; background: #f4fbf9; }.detail-payment-card { border-left-color: var(--sun); }.detail-action-card .workspace-section-title { max-width: 560px; font-size: 1.3rem; line-height: 1.2; }.detail-action-card .btn i { margin-right: 5px; }.detail-payment-card .form-control, .detail-payment-card .form-select { background: #fbfcfb; }.detail-payment-card .alert { border: 0; border-radius: 4px; }
@media (max-width: 575.98px) { .detail-transaction-hero { align-items: flex-start; flex-wrap: wrap; padding: 22px 20px; }.detail-transaction-icon { width: 52px; height: 52px; font-size: 1.4rem; }.detail-transaction-copy { max-width: calc(100% - 70px); }.detail-transaction-status { width: 100%; margin-left: 0; padding: 12px 0 0; border-top: 1px solid rgba(255,255,255,.2); border-left: 0; text-align: left; }.detail-action-card .d-flex { align-items: flex-start !important; }.detail-action-card .btn { width: 100%; } }
.myticket-filter-panel { margin-bottom: 28px; padding: 22px 24px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 10px 24px rgba(8,35,45,.04); }.myticket-filter-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 18px; }.myticket-filter-heading .eyebrow { margin-bottom: 7px; }.myticket-filter-heading h2 { margin: 0; font: 700 1.35rem 'Playfair Display', serif; }.myticket-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }.myticket-card { min-width: 0; }.myticket-card-banner { min-height: 108px; padding: 18px 20px; }.myticket-card-body { padding: 20px; }.myticket-card-head strong, .myticket-card-topline > div:first-child strong { overflow-wrap: anywhere; }.myticket-card-actions .btn { min-width: 0; padding-left: 12px; padding-right: 12px; font-size: .78rem; }
.myticket-item-line { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }.myticket-item-line small { grid-column: 1 / -1; display: block; margin-top: 3px; color: var(--ink-soft); font-size: .68rem; }.myticket-item-line small i { margin-right: 3px; color: var(--coral); }
@media (max-width: 1199.98px) { .myticket-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .myticket-list { grid-template-columns: 1fr; }.myticket-filter-heading { flex-direction: column; gap: 8px; } }
.ticket-overview { display: grid; grid-template-columns: minmax(150px, .7fr) minmax(190px, .9fr) minmax(260px, 1.4fr); gap: 1px; margin-bottom: 28px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 12px 26px rgba(8,35,45,.05); }.ticket-overview-item, .ticket-overview-note { min-height: 126px; padding: 22px 24px; background: #fff; }.ticket-overview-item .eyebrow { margin-bottom: 12px; }.ticket-overview-item strong { display: block; color: var(--ink); font-size: 2rem; line-height: 1; letter-spacing: -.04em; }.ticket-overview-item > span:last-child { display: block; margin-top: 8px; color: var(--ink-soft); font-size: .76rem; }.ticket-overview-note { display: flex; align-items: center; gap: 12px; color: var(--ink-soft); font-size: .82rem; line-height: 1.5; }.ticket-overview-note i { color: var(--coral); font-size: 1.2rem; }.ticket-date-selector { margin-bottom: 34px; padding: 12px 16px; border-radius: 8px; background: #fff; box-shadow: 0 12px 26px rgba(8,35,45,.05); }.ticket-date-strip { gap: 10px; padding: 4px 2px 8px; }.ticket-date-pill { min-width: 132px; padding: 13px 14px 12px; border-radius: 7px; border-color: var(--line); box-shadow: none; text-align: left; }.ticket-date-pill:hover { border-color: rgba(229,109,79,.5); box-shadow: 0 8px 16px rgba(8,35,45,.07); transform: translateY(-2px); }.ticket-date-pill.is-active { background: var(--ink); border-color: var(--ink); box-shadow: 0 10px 20px rgba(8,35,45,.18); }.ticket-date-weekday { color: var(--coral); font: 700 .62rem 'DM Mono', monospace; letter-spacing: .1em; text-transform: uppercase; }.ticket-date-pill.is-active .ticket-date-weekday { color: var(--sun); }.ticket-date-main { margin-top: 5px; font-size: 1.65rem; line-height: 1; }.ticket-date-sub { font-size: .68rem; }.ticket-date-quota { margin-top: 8px; color: var(--ink-soft); font-size: .65rem; font-weight: 800; }.ticket-date-pill.is-active .ticket-date-quota { color: rgba(255,255,255,.7); }.ticket-day-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; padding: 0 4px; }.ticket-day-header h2 { font: 700 1.55rem 'Playfair Display', serif; }.visitor-ticket-row { grid-template-columns: 88px minmax(200px, 1.7fr) minmax(120px, .9fr) minmax(140px, 1fr) minmax(90px, .7fr) 130px; min-height: 132px; padding: 20px 22px; border-radius: 8px; background: #fff; box-shadow: 0 10px 24px rgba(8,35,45,.06); border: 1px solid var(--line); border-left: 4px solid #2f8f96; }.visitor-ticket-row.is-open, .visitor-ticket-row.is-open:nth-child(2n), .visitor-ticket-row.is-open:nth-child(3n) { background: #fff; }.visitor-ticket-row.is-soldout { background: #fffaf0; border-left-color: var(--sun); }.visitor-ticket-thumb { width: 78px; height: 78px; border-radius: 8px; background: var(--sea); box-shadow: none; }.visitor-ticket-main h3 { font-size: 1.35rem; }.visitor-ticket-stat-value { font-size: 1.2rem; }.visitor-ticket-price .visitor-ticket-stat-value { color: var(--coral-dark); }.visitor-ticket-diskon { color: var(--coral-dark); font-size: .82rem; }.btn-book-ticket { border-radius: 4px; background: var(--coral); color: #fff; padding: .75rem 1.4rem; box-shadow: 0 8px 16px rgba(229,109,79,.2); }.btn-book-ticket:hover { background: var(--coral-dark); color: #fff; }.btn-book-ticket:disabled { background: #d8c9a6; color: var(--ink); box-shadow: none; }.ticket-day-panel { animation: ticketPanelIn .35s ease both; } @keyframes ticketPanelIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (max-width: 991.98px) { .ticket-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }.ticket-overview-note { grid-column: 1 / -1; min-height: auto; }.visitor-ticket-row { grid-template-columns: 80px 1fr; }.visitor-ticket-thumb { width: 70px; height: 70px; }.visitor-ticket-quota, .visitor-ticket-price, .visitor-ticket-diskon, .visitor-ticket-action { padding-top: 4px; } }
@media (max-width: 575.98px) { .ticket-overview { grid-template-columns: 1fr 1fr; }.ticket-overview-item, .ticket-overview-note { padding: 18px; }.ticket-overview-item strong { font-size: 1.55rem; }.ticket-overview-note { grid-column: 1 / -1; }.ticket-date-selector { margin-left: -4px; margin-right: -4px; padding: 10px 12px; }.ticket-date-nav { width: 36px; height: 36px; }.ticket-date-pill { min-width: 120px; }.ticket-day-header h2 { font-size: 1.3rem; }.visitor-ticket-row { padding: 16px; }.visitor-ticket-main h3 { font-size: 1.15rem; } }


/* ==========================================================================
   AUTH PAGES  (.apage__)
   Digunakan oleh: login, signup, forgot_password, reset_password
   ========================================================================== */

/* ---- Layout utama ---- */
.apage {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: calc(100vh - 76px);
}

/* ---- Panel kiri: visual/gambar ---- */
.apage__visual {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.apage__visual-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.04);
    transition: transform 8s ease;
}
.apage:hover .apage__visual-bg {
    transform: scale(1);
}
.apage__visual-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        150deg,
        rgba(8,35,45,.92) 0%,
        rgba(8,35,45,.70) 60%,
        rgba(8,35,45,.50) 100%
    );
}
.apage__visual-body {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 44px 52px;
}

/* Brand di panel kiri */
.apage__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font: 800 1.2rem 'Manrope', sans-serif;
    letter-spacing: -.04em;
    color: #fff;
    text-decoration: none;
    margin-bottom: auto;
}
.apage__brand img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    border-radius: 6px;
}
.apage__brand-dot {
    color: #e56d4f;
}

/* Eyebrow di atas heading kiri */
.apage__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    color: #f2c66d;
    font: 500 .7rem 'DM Mono', monospace;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.apage__eyebrow::before {
    content: '';
    display: block;
    width: 20px;
    height: 2px;
    background: #e56d4f;
    border-radius: 99px;
    flex-shrink: 0;
}

/* Heading besar panel kiri */
.apage__visual-copy {
    margin-top: 48px;
}
.apage__visual-h1 {
    margin: 0 0 18px;
    font: 700 clamp(2.6rem, 3.5vw, 4rem)/1.04 'Playfair Display', serif;
    letter-spacing: -.045em;
    color: #fff;
}
.apage__visual-h1 em {
    font-style: italic;
    color: #e56d4f;
}
.apage__visual-sub {
    max-width: 380px;
    color: rgba(255,255,255,.68);
    font-size: .92rem;
    line-height: 1.7;
}

/* Stats row di footer panel kiri */
.apage__visual-foot {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-top: 52px;
    padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,.15);
}
.apage__visual-stat strong {
    display: block;
    color: #fff;
    font: 700 1.4rem 'Playfair Display', serif;
}
.apage__visual-stat span {
    display: block;
    color: rgba(255,255,255,.5);
    font-size: .65rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-top: 2px;
}
.apage__visual-stat-div {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,.18);
    flex-shrink: 0;
}

/* Manfaat (signup) */
.apage__benefits {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.apage__benefit {
    display: flex;
    align-items: center;
    gap: 14px;
    color: rgba(255,255,255,.8);
    font-size: .86rem;
    font-weight: 600;
}
.apage__benefit-num {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(229,109,79,.22);
    border: 1px solid rgba(229,109,79,.4);
    color: #f2c66d;
    font: 700 .65rem 'DM Mono', monospace;
}

/* Tips (reset_password) */
.apage__tips {
    margin-top: 40px;
    padding: 20px 22px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
}
.apage__tips-label {
    margin: 0 0 10px;
    color: #f2c66d;
    font: 700 .66rem 'DM Mono', monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.apage__tips-list {
    margin: 0;
    padding-left: 18px;
    color: rgba(255,255,255,.68);
    font-size: .84rem;
    line-height: 1.8;
}

/* ---- Panel kanan: form ---- */
.apage__form-panel {
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 40px;
    overflow-y: auto;
}
.apage__form-inner {
    width: 100%;
    max-width: 420px;
}
.apage__form-inner--wide {
    max-width: 520px;
}

/* Ikon (forgot / reset) */
.apage__icon-wrap {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: #f4f7f5;
    color: #08232d;
    margin-bottom: 24px;
}

/* Kicker & heading form */
.apage__kicker {
    display: block;
    margin-bottom: 8px;
    color: #e56d4f;
    font: 500 .68rem 'DM Mono', monospace;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.apage__form-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 28px;
}
.apage__form-title {
    margin: 0 0 8px;
    font: 700 2.4rem 'Playfair Display', serif;
    letter-spacing: -.04em;
    color: #08232d;
}
.apage__form-sub {
    margin: 0;
    color: #52636a;
    font-size: .88rem;
    line-height: 1.65;
}

/* Badge langkah (signup) */
.apage__step-badge {
    flex-shrink: 0;
    color: #e56d4f;
    font: 700 .72rem 'DM Mono', monospace;
    letter-spacing: .08em;
    white-space: nowrap;
    margin-top: 4px;
}
.apage__step-badge small {
    color: #52636a;
    font-size: .62rem;
}

/* Alert */
.apage__alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: .84rem;
    font-weight: 600;
    margin-bottom: 22px;
    line-height: 1.5;
}
.apage__alert svg { flex-shrink: 0; margin-top: 1px; }
.apage__alert--danger  { background: #fdf0ed; color: #8d3929; border: 1px solid #f5d0c8; }
.apage__alert--success { background: #edf7f2; color: #235c41; border: 1px solid #c3e6d3; }

/* Form */
.apage__form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Row 2 kolom */
.apage__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Field */
.apage__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.apage__label {
    font-size: .76rem;
    font-weight: 800;
    color: #08232d;
    letter-spacing: .01em;
}
.apage__label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.apage__label-link {
    font-size: .76rem;
    font-weight: 700;
    color: #e56d4f;
    text-decoration: none;
    transition: color .2s;
}
.apage__label-link:hover { color: #bd4d37; }

/* Input */
.apage__input {
    width: 100%;
    padding: .78rem 1rem;
    background: #f8faf9;
    border: 1.5px solid #dce6e4;
    border-radius: 8px;
    font-family: 'Manrope', sans-serif;
    font-size: .9rem;
    color: #08232d;
    outline: none;
    transition: border-color .2s, box-shadow .2s, background .2s;
    appearance: none;
    -webkit-appearance: none;
}
.apage__input:focus {
    background: #fff;
    border-color: #e56d4f;
    box-shadow: 0 0 0 3px rgba(229,109,79,.12);
}
.apage__input::placeholder { color: #9aa8a9; }
.apage__input--center { text-align: center; }

/* Input group (password toggle, email icon) */
.apage__input-group {
    position: relative;
    display: flex;
    align-items: stretch;
}
.apage__input-group .apage__input {
    padding-right: 3rem;
    flex: 1;
}
.apage__eye-btn {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 44px;
    display: grid;
    place-items: center;
    background: transparent;
    border: 0;
    color: #52636a;
    cursor: pointer;
    border-radius: 0 8px 8px 0;
    transition: color .2s;
}
.apage__eye-btn:hover { color: #08232d; }
.apage__eye-icon { width: 1.1rem; height: 1.1rem; }

/* Input addon dekoratif (readonly icon) */
.apage__input-addon {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #9aa8a9;
    pointer-events: none;
    display: flex;
    align-items: center;
}

/* Pesan status field */
.apage__field-msg {
    font-size: .76rem;
    font-weight: 700;
    min-height: 1em;
}
.apage__field-msg--ok    { color: #257a59; }
.apage__field-msg--error { color: #c0392b; }

/* Checkbox ingat saya */
.apage__remember {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: #52636a;
    font-size: .82rem;
    font-weight: 600;
    user-select: none;
    margin-top: -4px;
}
.apage__checkbox {
    width: 16px;
    height: 16px;
    border: 1.5px solid #dce6e4;
    border-radius: 4px;
    accent-color: #e56d4f;
    cursor: pointer;
    flex-shrink: 0;
}

/* Captcha block */
.apage__captcha {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 16px 18px;
    background: #fffdf5;
    border: 1.5px solid #ead9ad;
    border-radius: 10px;
}
.apage__captcha-kicker {
    display: block;
    margin-bottom: 3px;
    color: #52636a;
    font: 700 .62rem 'DM Mono', monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.apage__captcha-info { flex: 1; }
.apage__captcha-question {
    display: block;
    color: #08232d;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.3;
}
.apage__captcha-info small {
    color: #52636a;
    font-size: .74rem;
}

/* Password strength */
.apage__strength {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}
.apage__strength-bar {
    display: flex;
    gap: 4px;
    flex: 1;
}
.apage__strength-seg {
    flex: 1;
    height: 4px;
    border-radius: 99px;
    background: #dce6e4;
    opacity: .18;
    transition: background .3s, opacity .3s;
}
.apage__strength-label {
    font-size: .72rem;
    font-weight: 800;
    white-space: nowrap;
    min-width: 80px;
    text-align: right;
}

/* Submit button */
.apage__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 15px 24px;
    background: #e56d4f;
    color: #fff;
    border: 0;
    border-radius: 10px;
    font: 800 .95rem 'Manrope', sans-serif;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(229,109,79,.32);
    transition: background .2s, transform .2s, box-shadow .2s;
    margin-top: 4px;
}
.apage__submit:hover {
    background: #bd4d37;
    transform: translateY(-2px);
    box-shadow: 0 16px 30px rgba(229,109,79,.38);
}
.apage__submit:disabled {
    background: #c8d5d3;
    color: #fff;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

/* Link bawah form */
.apage__switch {
    margin: 22px 0 0;
    text-align: center;
    color: #52636a;
    font-size: .84rem;
}
.apage__switch-link {
    color: #e56d4f;
    font-weight: 800;
    text-decoration: none;
}
.apage__switch-link:hover { color: #bd4d37; text-decoration: underline; }

.apage__back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #52636a;
    font-weight: 700;
    font-size: .84rem;
    text-decoration: none;
    transition: color .2s, gap .2s;
}
.apage__back-link:hover { color: #08232d; gap: 8px; }

/* ---- Animasi masuk ---- */
.apage__form-inner {
    animation: apageFormIn .55s cubic-bezier(.22,.68,0,1.2) both;
}
@keyframes apageFormIn {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: none; }
}

/* ---- Responsive ---- */
@media (max-width: 991.98px) {
    .apage {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .apage__visual {
        min-height: 360px;
    }
    .apage__visual-body {
        padding: 36px 32px;
    }
    .apage__visual-copy {
        margin-top: 28px;
    }
    .apage__visual-foot {
        margin-top: 32px;
    }
    .apage__form-panel {
        padding: 52px 32px;
    }
    .apage__visual-h1 {
        font-size: 2.8rem;
    }
    .apage__benefits,
    .apage__tips {
        display: none; /* sembunyikan di mobile, info sudah ada di form */
    }
}

@media (max-width: 575.98px) {
    .apage__visual {
        min-height: 300px;
    }
    .apage__visual-body {
        padding: 28px 24px;
    }
    .apage__visual-h1 {
        font-size: 2.2rem;
    }
    .apage__form-panel {
        padding: 40px 20px;
        align-items: flex-start;
    }
    .apage__form-title {
        font-size: 2rem;
    }
    .apage__row {
        grid-template-columns: 1fr;
    }
    .apage__captcha {
        flex-direction: column;
        align-items: stretch;
    }
    .apage__captcha .apage__field {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }
    .apage__captcha .apage__input--center {
        max-width: 100px;
    }
}
/* ========== END AUTH PAGES ========== */


/* ==========================================================================
   AUTH LAYOUT v2  (.alx__)
   Full-bleed background · floating card · dynamic composition
   Digunakan: login.php, forgot_password.php
   ========================================================================== */

/* ---- Root ---- */
.alx {
    position: relative;
    min-height: calc(100vh - 76px);
    display: flex;
    align-items: stretch;
    overflow: hidden;
    color: #fff;
}

/* ---- Background ---- */
.alx__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 40%;
    transform: scale(1.06);
    animation: alxBgDrift 20s ease-in-out infinite alternate;
    will-change: transform;
}
@keyframes alxBgDrift {
    from { transform: scale(1.06) translateX(0); }
    to   { transform: scale(1.06) translateX(-16px); }
}
.alx__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        110deg,
        rgba(8,35,45,.92) 0%,
        rgba(8,35,45,.80) 38%,
        rgba(8,35,45,.60) 65%,
        rgba(8,35,45,.38) 100%
    );
}

/* ---- Dekoratif ---- */
.alx__deco { position: absolute; pointer-events: none; user-select: none; }

.alx__deco--ring {
    width: 520px; height: 520px;
    top: -140px; right: -80px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.06);
    box-shadow:
        0 0 0 70px rgba(255,255,255,.03),
        0 0 0 140px rgba(255,255,255,.02);
    animation: alxRingPulse 6s ease-in-out infinite;
}
@keyframes alxRingPulse {
    0%, 100% { opacity: .6; transform: scale(1); }
    50%       { opacity: 1; transform: scale(1.03); }
}

.alx__deco--anchor {
    font-size: 18rem;
    line-height: 1;
    color: rgba(255,255,255,.03);
    bottom: -40px;
    left: 28%;
    animation: alxAnchorFloat 10s ease-in-out infinite;
}
@keyframes alxAnchorFloat {
    0%, 100% { transform: translateY(0) rotate(-4deg); }
    50%       { transform: translateY(-18px) rotate(2deg); }
}

.alx__deco--wave {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 120px;
    overflow: hidden;
}
.alx__deco--wave svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* ---- Body (konten di atas overlay) ---- */
.alx__body {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 60px clamp(24px, 5vw, 80px);
}

/* ---- Sisi kiri: copy ---- */
.alx__copy {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-right: 60px;
}

.alx__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font: 800 1.15rem 'Manrope', sans-serif;
    letter-spacing: -.04em;
    color: #fff;
    text-decoration: none;
    margin-bottom: 64px;
    align-self: flex-start;
}
.alx__brand img {
    width: 36px; height: 36px;
    object-fit: contain;
    border-radius: 8px;
}
.alx__brand-dot { color: #e56d4f; }

.alx__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    color: #f2c66d;
    font: 500 .7rem 'DM Mono', monospace;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.alx__eyebrow-line {
    display: block;
    width: 24px; height: 2px;
    background: #e56d4f;
    border-radius: 99px;
    flex-shrink: 0;
}
.alx__copy-main { margin-bottom: 52px; }

.alx__h1 {
    margin: 0 0 20px;
    font: 700 clamp(3rem, 5vw, 5.6rem)/.94 'Playfair Display', serif;
    letter-spacing: -.055em;
    color: #fff;
}
.alx__h1-em {
    font-style: italic;
    color: #e56d4f;
}
.alx__tagline {
    max-width: 400px;
    color: rgba(255,255,255,.68);
    font-size: .96rem;
    line-height: 1.72;
}

/* Stats */
.alx__stats {
    display: flex;
    align-items: center;
    gap: 24px;
}
.alx__stat strong {
    display: block;
    color: #fff;
    font: 700 1.5rem 'Playfair Display', serif;
}
.alx__stat span {
    display: block;
    color: rgba(255,255,255,.48);
    font-size: .64rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-top: 3px;
}
.alx__stat-sep {
    display: block;
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,.18);
    flex-shrink: 0;
}

/* Recovery steps (forgot password) */
.alx__recovery-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.alx__rstep {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.alx__rstep strong {
    display: block;
    font-size: .9rem;
    font-weight: 700;
    color: #fff;
}
.alx__rstep small {
    display: block;
    color: rgba(255,255,255,.5);
    font-size: .76rem;
    margin-top: 2px;
}
.alx__rstep-num {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: rgba(229,109,79,.2);
    border: 1px solid rgba(229,109,79,.45);
    color: #f2c66d;
    font: 700 .66rem 'DM Mono', monospace;
    letter-spacing: .04em;
}
.alx__rstep-connector {
    width: 1px;
    height: 22px;
    background: rgba(255,255,255,.15);
    margin-left: 16px; /* rata tengah nomor */
    border-left: 1px dashed rgba(229,109,79,.3);
}

/* ---- Card form (kanan) ---- */
.alx__card-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    width: 440px;
    flex-shrink: 0;
}

.alx__card {
    width: 100%;
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-radius: 20px;
    padding: 36px 36px 28px;
    box-shadow:
        0 24px 64px rgba(8,35,45,.32),
        0 0 0 1px rgba(255,255,255,.12);
    animation: alxCardIn .7s cubic-bezier(.22,.68,0,1.15) both;
}
@keyframes alxCardIn {
    from { opacity: 0; transform: translateY(28px) scale(.97); }
    to   { opacity: 1; transform: none; }
}

/* Icon di atas card (forgot) */
.alx__card-icon {
    display: grid;
    place-items: center;
    width: 48px; height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, #fce6db, #fff0c9);
    color: #08232d;
    margin-bottom: 20px;
}

.alx__card-head { margin-bottom: 6px; }
.alx__card-kicker {
    display: block;
    margin-bottom: 6px;
    color: #e56d4f;
    font: 500 .66rem 'DM Mono', monospace;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.alx__card-title {
    margin: 0 0 6px;
    font: 700 2rem 'Playfair Display', serif;
    letter-spacing: -.04em;
    color: #08232d;
}
.alx__card-sub {
    margin: 0;
    color: #52636a;
    font-size: .84rem;
    line-height: 1.6;
}

.alx__card-divider {
    height: 1px;
    background: linear-gradient(90deg, #dce6e4, transparent);
    margin: 20px 0 24px;
}

/* Alert */
.alx__alert {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 11px 14px;
    border-radius: 8px;
    font-size: .82rem;
    font-weight: 600;
    margin-bottom: 20px;
    line-height: 1.5;
}
.alx__alert svg { flex-shrink: 0; margin-top: 1px; }
.alx__alert--danger  { background: #fdf0ed; color: #8d3929; border: 1px solid #f5d0c8; }
.alx__alert--success { background: #edf7f2; color: #235c41; border: 1px solid #c3e6d3; }

/* Form */
.alx__form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* Field */
.alx__field { display: flex; flex-direction: column; gap: 7px; }
.alx__label {
    font-size: .74rem;
    font-weight: 800;
    color: #08232d;
    letter-spacing: .01em;
}
.alx__label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.alx__forgot {
    font-size: .74rem;
    font-weight: 700;
    color: #e56d4f;
    text-decoration: none;
    transition: color .2s;
}
.alx__forgot:hover { color: #bd4d37; }

/* Input wrapper */
.alx__input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.alx__input-icon {
    position: absolute;
    left: 13px;
    color: #9aa8a9;
    display: flex;
    align-items: center;
    pointer-events: none;
    z-index: 1;
}
.alx__input {
    width: 100%;
    padding: .82rem 1rem;
    background: #f6f9f8;
    border: 1.5px solid #dce6e4;
    border-radius: 10px;
    font-family: 'Manrope', sans-serif;
    font-size: .88rem;
    color: #08232d;
    outline: none;
    transition: border-color .2s, background .2s, box-shadow .2s;
    appearance: none;
    -webkit-appearance: none;
}
.alx__input--icon { padding-left: 2.6rem; }
.alx__input:focus {
    background: #fff;
    border-color: #e56d4f;
    box-shadow: 0 0 0 3px rgba(229,109,79,.13);
}
.alx__input::placeholder { color: #b0bcbd; }

/* Toggle password */
.alx__eye {
    position: absolute;
    right: 0; top: 0; bottom: 0;
    width: 42px;
    display: grid;
    place-items: center;
    background: transparent;
    border: 0;
    color: #9aa8a9;
    cursor: pointer;
    border-radius: 0 10px 10px 0;
    transition: color .2s;
}
.alx__eye:hover { color: #08232d; }

/* Remember */
.alx__remember {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    color: #52636a;
    font-size: .82rem;
    font-weight: 600;
    user-select: none;
    margin-top: -2px;
}
.alx__checkbox { display: none; }
.alx__checkbox-custom {
    width: 18px; height: 18px;
    flex-shrink: 0;
    border-radius: 5px;
    border: 1.5px solid #dce6e4;
    background: #f6f9f8;
    display: grid;
    place-items: center;
    transition: border-color .2s, background .2s;
    position: relative;
}
.alx__checkbox:checked + .alx__checkbox-custom {
    background: #e56d4f;
    border-color: #e56d4f;
}
.alx__checkbox:checked + .alx__checkbox-custom::after {
    content: '';
    display: block;
    width: 9px; height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translateY(-1px);
}

/* Submit */
.alx__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 15px;
    background: linear-gradient(135deg, #e56d4f, #c95a3a);
    color: #fff;
    border: 0;
    border-radius: 12px;
    font: 800 .95rem 'Manrope', sans-serif;
    cursor: pointer;
    box-shadow:
        0 10px 28px rgba(229,109,79,.35),
        inset 0 1px 0 rgba(255,255,255,.15);
    transition: transform .2s ease, box-shadow .2s ease, background .2s;
    margin-top: 4px;
    position: relative;
    overflow: hidden;
}
.alx__submit::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
    transition: left .5s ease;
}
.alx__submit:hover::before { left: 160%; }
.alx__submit:hover {
    background: linear-gradient(135deg, #d05e40, #b84f30);
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(229,109,79,.42), inset 0 1px 0 rgba(255,255,255,.15);
}
.alx__submit:active { transform: translateY(0); }

/* Footer card */
.alx__card-foot {
    margin: 20px 0 0;
    text-align: center;
    color: #52636a;
    font-size: .82rem;
}
.alx__card-link {
    color: #e56d4f;
    font-weight: 800;
    text-decoration: none;
}
.alx__card-link:hover { color: #bd4d37; text-decoration: underline; }

.alx__back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #52636a;
    font-weight: 700;
    font-size: .82rem;
    text-decoration: none;
    transition: color .2s, gap .2s;
}
.alx__back-link:hover { color: #08232d; gap: 8px; }

/* Trust badges */
.alx__trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}
.alx__trust-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: rgba(255,255,255,.48);
    font-size: .7rem;
    font-weight: 600;
}
.alx__trust-sep {
    color: rgba(255,255,255,.22);
    font-size: .8rem;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
    .alx__body { grid-template-columns: 1fr; justify-items: center; }
    .alx__copy  { padding-right: 0; text-align: center; align-items: center; max-width: 540px; }
    .alx__tagline { max-width: 480px; }
    .alx__brand { margin-bottom: 40px; }
    .alx__copy-main { margin-bottom: 36px; }
    .alx__stats { justify-content: center; }
    .alx__recovery-steps { align-items: flex-start; }
    .alx__card-wrap { width: 100%; max-width: 480px; }
}

@media (max-width: 767.98px) {
    .alx { min-height: auto; }
    .alx__body { padding: 48px 20px 60px; gap: 40px; }
    .alx__brand { margin-bottom: 28px; }
    .alx__h1 { font-size: 2.6rem; }
    .alx__card { padding: 28px 24px 22px; }
    .alx__deco--anchor { display: none; }
}

@media (max-width: 480px) {
    .alx__body { padding: 36px 16px 48px; gap: 32px; }
    .alx__h1 { font-size: 2.2rem; }
    .alx__card-title { font-size: 1.7rem; }
    .alx__recovery-steps { display: none; }
}
/* ========== END AUTH LAYOUT v2 ========== */


/* ==========================================================================
   AUTH LAYOUT v2 – EXTENSIONS
   signup.php · reset_password.php
   ========================================================================== */

/* ---- Ilustrasi scene SVG ---- */
.alx__scene {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
}
.alx__scene-svg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 58%;
    max-width: 600px;
    height: auto;
    opacity: .92;
}

/* Animasi asap cerobong */
.alx-smoke {
    animation: alxSmoke 4s ease-in-out infinite;
    transform-origin: center bottom;
}
@keyframes alxSmoke {
    0%, 100% { transform: translate(0, 0)   scale(1);    opacity: .9; }
    40%       { transform: translate(4px,-6px) scale(1.1); opacity: .6; }
    70%       { transform: translate(-3px,-4px) scale(1.05); opacity: .75; }
}

/* Animasi trolley crane – gerak bolak-balik di girder */
.alx-trolley {
    animation: alxTrolley 7s ease-in-out infinite;
    transform-origin: 381px 119px; /* titik tengah trolley default */
}
@keyframes alxTrolley {
    0%   { transform: translateX(0); }
    45%  { transform: translateX(50px); }
    55%  { transform: translateX(50px); }
    100% { transform: translateX(0); }
}

/* Versi lambat untuk reset (suasana malam tenang) */
.alx-trolley--slow {
    animation: alxTrolleySlow 12s ease-in-out infinite;
    transform-origin: 411px 109px;
}
@keyframes alxTrolleySlow {
    0%   { transform: translateX(0); }
    45%  { transform: translateX(40px); }
    55%  { transform: translateX(40px); }
    100% { transform: translateX(0); }
}

/* ---- Signup – body override (card lebih lebar) ---- */
.alx__body--signup {
    grid-template-columns: 1fr auto;
}
.alx__card--wide {
    width: 500px;
}

/* ---- Form row 2 kolom (signup) ---- */
.alx__form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

/* ---- Step pill ---- */
.alx__step-pill {
    flex-shrink: 0;
    padding: 5px 12px;
    background: rgba(229,109,79,.1);
    border: 1px solid rgba(229,109,79,.25);
    border-radius: 99px;
    color: #e56d4f;
    font: 700 .7rem 'DM Mono', monospace;
    letter-spacing: .06em;
    white-space: nowrap;
    align-self: flex-start;
    margin-top: 4px;
}
.alx__step-pill small {
    color: #52636a;
    font-size: .6rem;
}

/* ---- Benefit list (signup kiri) ---- */
.alx__benefits {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.alx__benefit {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255,255,255,.78);
    font-size: .88rem;
    font-weight: 600;
}
.alx__benefit-icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 24px; height: 24px;
    border-radius: 50%;
    background: rgba(229,109,79,.22);
    border: 1px solid rgba(229,109,79,.4);
    color: #f2c66d;
}

/* ---- Captcha (signup) ---- */
.alx__captcha {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 14px 16px;
    background: rgba(242,198,109,.08);
    border: 1.5px solid rgba(242,198,109,.3);
    border-radius: 10px;
}
.alx__captcha-kicker {
    display: block;
    margin-bottom: 3px;
    color: #f2c66d;
    font: 700 .62rem 'DM Mono', monospace;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .8;
}
.alx__captcha-body { flex: 1; min-width: 0; }
.alx__captcha-q {
    display: block;
    color: #c95a3a;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.2;
}
.alx__captcha-body small {
    color: rgba(255,255,255,.45);
    font-size: .74rem;
}
.alx__captcha-field {
    flex: 0 0 100px;
    margin: 0 !important;
}
.alx__captcha-field .alx__label {
    color: rgba(255,255,255,.7);
}
.alx__captcha-field .alx__input {
    text-align: center;
    background: rgba(255,255,255,.92);
}

/* ---- Field msg (reuse di alx__) ---- */
.alx__field-msg {
    font-size: .74rem;
    font-weight: 700;
    min-height: 1em;
    padding-top: 2px;
}
.alx__field-msg--ok    { color: #257a59; }
.alx__field-msg--error { color: #c0392b; }

/* ---- Strength meter ---- */
.alx__strength {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}
.alx__strength-bar {
    display: flex;
    gap: 4px;
    flex: 1;
}
.alx__strength-seg {
    flex: 1;
    height: 4px;
    border-radius: 99px;
    background: #dce6e4;
    opacity: .15;
    transition: background .35s, opacity .35s;
}
.alx__strength-label {
    font-size: .72rem;
    font-weight: 800;
    white-space: nowrap;
    min-width: 88px;
    text-align: right;
    transition: color .35s;
}

/* ---- Tips box (reset kiri) ---- */
.alx__tips-box {
    padding: 18px 20px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    border-left: 3px solid rgba(242,198,109,.6);
    border-radius: 0 10px 10px 0;
}
.alx__tips-title {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 10px;
    color: #f2c66d;
    font: 700 .68rem 'DM Mono', monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.alx__tips-list {
    margin: 0;
    padding-left: 16px;
    color: rgba(255,255,255,.62);
    font-size: .84rem;
    line-height: 1.9;
}

/* ---- Responsive override ---- */
@media (max-width: 1100px) {
    .alx__card--wide { width: 460px; }
    .alx__scene-svg  { width: 50%; }
}

@media (max-width: 1024px) {
    .alx__scene-svg { width: 70%; left: 50%; transform: translateX(-50%); opacity: .55; }
    .alx__card--wide { width: 100%; max-width: 500px; }
    .alx__benefits { display: none; } /* sembunyikan di tablet/mobile */
    .alx__tips-box  { display: none; }
}

@media (max-width: 600px) {
    .alx__form-row { grid-template-columns: 1fr; }
    .alx__captcha  { flex-direction: column; align-items: stretch; }
    .alx__captcha-field { flex: none; }
    .alx__captcha-field .alx__input { text-align: left; }
    .alx__scene-svg { display: none; }
    .alx__step-pill { display: none; }
}
/* ========== END AUTH EXTENSIONS ========== */


/* ==========================================================================
   SITE HEADER v2  (.sh__)
   ========================================================================== */
.site-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    transition: box-shadow .25s ease;
}
.site-header.is-scrolled { box-shadow: 0 6px 28px rgba(8,35,45,.09); }

.sh-inner { padding: 0; }

.sh-nav {
    display: flex;
    align-items: center;
    gap: 0;
    min-height: 70px;
    padding: 0;
    position: relative;
}

/* Brand */
.sh-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font: 800 1.18rem 'Manrope', sans-serif;
    letter-spacing: -.04em;
    color: #08232d;
    text-decoration: none;
    flex-shrink: 0;
}
.sh-brand__logo-wrap {
    display: grid;
    place-items: center;
    width: 38px; height: 38px;
    border-radius: 10px;
    overflow: hidden;
    background: #f4f7f5;
    transition: transform .25s ease, background .25s ease;
}
.sh-brand:hover .sh-brand__logo-wrap { transform: rotate(-5deg); background: #fff0eb; }
.sh-brand__img { width: 32px; height: 32px; object-fit: contain; }
.sh-brand__dot { color: #e56d4f; }

/* Links */
.sh-collapse { flex: 1; }
.sh-links {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.sh-link {
    display: inline-block;
    padding: 7px 14px;
    border-radius: 8px;
    color: #52636a;
    font-size: .86rem;
    font-weight: 700;
    text-decoration: none;
    transition: color .2s, background .2s;
    position: relative;
}
.sh-link::after {
    content: '';
    position: absolute;
    bottom: 4px; left: 14px; right: 14px;
    height: 2px;
    background: #e56d4f;
    border-radius: 99px;
    transform: scaleX(0);
    transition: transform .2s ease;
    transform-origin: left;
}
.sh-link:hover { color: #08232d; background: #f4f7f5; }
.sh-link:hover::after { transform: scaleX(1); }

/* Auth area */
.sh-auth {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
    flex-shrink: 0;
}
.sh-auth__login {
    font-size: .86rem;
    font-weight: 700;
    color: #52636a;
    text-decoration: none;
    transition: color .2s;
}
.sh-auth__login:hover { color: #08232d; }

.sh-auth__user {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 5px 12px 5px 5px;
    border-radius: 99px;
    background: #f4f7f5;
    border: 1.5px solid #dce6e4;
    color: #08232d;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
    transition: border-color .2s, background .2s;
}
.sh-auth__user:hover { border-color: #e56d4f; background: #fff; color: #08232d; }
.sh-auth__avatar {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #08232d, #175361);
    color: #f2c66d;
    font: 700 .72rem 'DM Mono', monospace;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.sh-auth__name { max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Buttons nav */
.sh-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: .84rem;
    font-weight: 800;
    text-decoration: none;
    transition: all .2s ease;
    white-space: nowrap;
}
.sh-btn--solid {
    background: #e56d4f;
    color: #fff;
    box-shadow: 0 6px 16px rgba(229,109,79,.28);
}
.sh-btn--solid:hover { background: #bd4d37; color: #fff; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(229,109,79,.35); }
.sh-btn--outline {
    border: 1.5px solid #dce6e4;
    color: #52636a;
    background: transparent;
}
.sh-btn--outline:hover { border-color: #e56d4f; color: #e56d4f; background: rgba(229,109,79,.06); }
.sh-btn--door {
    border: 1px solid #dce6e4;
    background: #f4f7f5;
    color: #08232d;
}
.sh-btn--door:hover {
    border-color: #e56d4f;
    background: #fff0eb;
    color: #bd4d37;
    transform: translateY(-1px);
}
.sh-btn--door svg { flex: 0 0 auto; transition: transform .2s ease; }
.sh-btn--door:hover svg { transform: translateX(2px); }

/* Burger */
.sh-burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 38px; height: 38px;
    padding: 7px;
    background: transparent;
    border: 1.5px solid #dce6e4;
    border-radius: 8px;
    cursor: pointer;
    margin-left: auto;
    transition: border-color .2s;
}
.sh-burger:hover { border-color: #e56d4f; }
.sh-burger__bar {
    display: block;
    width: 100%;
    height: 2px;
    background: #08232d;
    border-radius: 99px;
    transition: transform .25s ease, opacity .25s ease;
}

/* Underline dekoratif bawah header */
.sh-underline {
    display: flex;
    height: 3px;
    overflow: hidden;
}
.sh-underline__seg { flex: 1; }
.sh-underline__seg--coral { background: #e56d4f; }
.sh-underline__seg--sea   { background: #2f8f96; }
.sh-underline__seg--sun   { background: #f2c66d; }

/* Responsive header */
@media (min-width: 992px) {
    .sh-collapse {
        display: flex !important;
        flex-basis: auto;
        align-items: center;
    }
}

@media (max-width: 991.98px) {
    .sh-burger { display: flex; }
    .sh-collapse {
        position: absolute;
        top: 100%;
        left: 0; right: 0;
        background: rgba(255,255,255,.98);
        border-top: 1px solid #dce6e4;
        padding: 16px 20px 20px;
        box-shadow: 0 12px 28px rgba(8,35,45,.1);
    }
    .sh-links { flex-direction: column; align-items: flex-start; gap: 2px; margin-bottom: 14px; }
    .sh-link { width: 100%; }
    .sh-auth { flex-wrap: wrap; margin-left: 0; }
    .sh-btn, .sh-auth__login, .sh-auth__user { width: 100%; justify-content: center; }
}

/* ==========================================================================
   SITE FOOTER v2  (.sf__)
   ========================================================================== */
.site-footer {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    margin-top: auto;
    background: #08232d;
    color: #fff;
    overflow: hidden;
    padding-top: 0;
}

/* Scene SVG pelabuhan di atas footer */
.sf-scene {
    position: relative;
    width: 100%;
    height: 160px;
    overflow: hidden;
    pointer-events: none;
}
.sf-scene__svg {
    position: absolute;
    bottom: 0; left: 0;
    width: 100%;
    height: 100%;
}

/* Animasi smoke footer */
.sf-smoke {
    animation: sfSmoke 5s ease-in-out infinite;
    transform-origin: center bottom;
}
@keyframes sfSmoke {
    0%,100% { transform: translate(0,0) scale(1); opacity: .9; }
    50%      { transform: translate(3px,-8px) scale(1.12); opacity: .55; }
}

/* Animasi trolley footer */
.sf-trolley {
    animation: sfTrolley 8s ease-in-out infinite;
    transform-origin: 701px 50px;
}
@keyframes sfTrolley {
    0%   { transform: translateX(0); }
    45%  { transform: translateX(60px); }
    55%  { transform: translateX(60px); }
    100% { transform: translateX(0); }
}
.sf-trolley--r {
    animation: sfTrolleyR 10s ease-in-out infinite;
    transform-origin: 919px 38px;
}
@keyframes sfTrolleyR {
    0%   { transform: translateX(0); }
    40%  { transform: translateX(-50px); }
    55%  { transform: translateX(-50px); }
    100% { transform: translateX(0); }
}

/* Animasi truk footer */
.sf-truck {
    animation: sfTruck 18s linear infinite;
}
@keyframes sfTruck {
    from { transform: translateX(0); }
    to   { transform: translateX(-1600px); }
}

/* Body konten footer */
.sf-body { padding: 48px 0 24px; }

.sf-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.4fr;
    gap: 40px;
    margin-bottom: 44px;
}

/* Brand kolom */
.sf-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font: 700 1.6rem 'Playfair Display', serif;
    color: #fff;
    text-decoration: none;
    margin-bottom: 12px;
}
.sf-brand__img { width: 36px; height: 36px; object-fit: contain; border-radius: 8px; }
.sf-brand__dot { color: #e56d4f; }

.sf-tagline {
    color: rgba(255,255,255,.85);
    font: 500 .96rem 'Manrope', sans-serif;
    margin: 0 0 4px;
}
.sf-sub {
    color: rgba(255,255,255,.42);
    font-size: .78rem;
    margin: 0 0 18px;
}
.sf-badge img { opacity: .55; transition: opacity .2s; }
.sf-badge img:hover { opacity: .85; }

/* Nav kolom */
.sf-col__title {
    margin: 0 0 14px;
    color: rgba(255,255,255,.5);
    font: 700 .64rem 'DM Mono', monospace;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.sf-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sf-link {
    color: rgba(255,255,255,.65);
    font-size: .86rem;
    font-weight: 600;
    text-decoration: none;
    transition: color .2s;
}
.sf-link:hover { color: #fff; }

/* Info kolom */
.sf-info {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 10px;
}
.sf-info li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: rgba(255,255,255,.58);
    font-size: .82rem;
    line-height: 1.5;
}
.sf-info li svg { flex-shrink: 0; margin-top: 2px; color: #e56d4f; }

/* Bottom bar */
.sf-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.1);
    gap: 12px;
    flex-wrap: wrap;
}
.sf-copy {
    color: rgba(255,255,255,.3);
    font: .7rem 'DM Mono', monospace;
    letter-spacing: .04em;
}
.sf-bottom__right {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: rgba(255,255,255,.35);
    font: .7rem 'DM Mono', monospace;
}
.sf-pulse {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: #48aa7c;
    box-shadow: 0 0 0 3px rgba(72,170,124,.2);
    animation: sfPulse 2s ease-in-out infinite;
}
@keyframes sfPulse {
    0%,100% { box-shadow: 0 0 0 3px rgba(72,170,124,.2); }
    50%      { box-shadow: 0 0 0 6px rgba(72,170,124,.08); }
}

/* Responsive footer */
@media (max-width: 1100px) {
    .sf-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
    .sf-col--brand { grid-column: 1 / -1; }
    .sf-scene { height: 120px; }
}
@media (max-width: 575.98px) {
    .sf-grid { grid-template-columns: 1fr; }
    .sf-col--brand { grid-column: auto; }
    .sf-scene { height: 90px; }
    .sf-truck { display: none; }
}

/* ==========================================================================
   DASHBOARD HERO  (.db-hero, .db-stat)
   ========================================================================== */

/* Hero banner */
.db-hero {
    position: relative;
    min-height: 180px;
    margin-bottom: 32px;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(120deg, #08232d 0%, #0d3a4a 55%, #175361 100%);
    color: #fff;
}

.db-hero__scene {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}
.db-hero__scene svg {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 58%;
    max-width: 620px;
    height: 100%;
    opacity: .9;
}

/* Animasi smoke + trolley dashboard */
.db-smoke {
    animation: dbSmoke 5s ease-in-out infinite;
    transform-origin: center bottom;
}
@keyframes dbSmoke {
    0%,100% { transform: translate(0,0) scale(1); opacity: .8; }
    50%      { transform: translate(2px,-6px) scale(1.1); opacity: .45; }
}
.db-trolley {
    animation: dbTrolley 7s ease-in-out infinite;
    transform-origin: 414px 28px;
}
@keyframes dbTrolley {
    0%   { transform: translateX(0); }
    42%  { transform: translateX(48px); }
    55%  { transform: translateX(48px); }
    100% { transform: translateX(0); }
}
.db-truck {
    animation: dbTruck 14s linear infinite;
}
@keyframes dbTruck {
    from { transform: translateX(180px); }
    to   { transform: translateX(-700px); }
}

.db-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 32px 36px;
    min-height: 180px;
}
.db-hero__left { max-width: 480px; }
.db-hero__kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    color: #f2c66d;
    font: 500 .68rem 'DM Mono', monospace;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.db-hero__dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #e56d4f;
    box-shadow: 0 0 0 3px rgba(229,109,79,.3);
    flex-shrink: 0;
    animation: sfPulse 2s ease-in-out infinite;
}
.db-hero__title {
    margin: 0 0 8px;
    font: 700 clamp(1.8rem, 3vw, 2.8rem)/1.08 'Playfair Display', serif;
    letter-spacing: -.04em;
    color: #fff;
}
.db-hero__desc {
    margin: 0;
    color: rgba(255,255,255,.65);
    font-size: .9rem;
    line-height: 1.65;
}
.db-hero__right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
    flex-shrink: 0;
}
.db-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 14px;
    background: rgba(72,170,124,.18);
    border: 1px solid rgba(72,170,124,.35);
    border-radius: 99px;
    color: #7dd4a8;
    font: 700 .68rem 'DM Mono', monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.db-status-pill__dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #48aa7c;
    animation: sfPulse 2s ease-in-out infinite;
}
.db-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 10px;
    color: #fff;
    font-size: .84rem;
    font-weight: 800;
    text-decoration: none;
    transition: background .2s, border-color .2s, transform .2s;
}
.db-cta:hover {
    background: rgba(229,109,79,.25);
    border-color: rgba(229,109,79,.5);
    color: #fff;
    transform: translateY(-1px);
}

/* Notice / pesan website */
.db-notice-list { display: flex; flex-direction: column; gap: 10px; }
.db-notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 18px;
    background: rgba(242,198,109,.08);
    border: 1px solid rgba(242,198,109,.25);
    border-left: 3px solid #f2c66d;
    border-radius: 0 10px 10px 0;
}
.db-notice__icon {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 28px; height: 28px;
    border-radius: 8px;
    background: rgba(242,198,109,.15);
    color: #f2c66d;
    margin-top: 1px;
}
.db-notice__label {
    display: block;
    margin-bottom: 4px;
    color: #f2c66d;
    font: 700 .65rem 'DM Mono', monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.db-notice__text { margin: 0; color: #52636a; font-size: .86rem; }

/* Stat cards */
.db-stats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 32px;
}
.db-stat {
    position: relative;
    padding: 22px 22px 18px;
    background: #fff;
    border: 1px solid #dce6e4;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(8,35,45,.05);
    transition: transform .25s ease, box-shadow .25s ease;
}
.db-stat:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(8,35,45,.1);
}
.db-stat__label {
    display: block;
    margin-bottom: 10px;
    color: #52636a;
    font: 500 .66rem 'DM Mono', monospace;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.db-stat__value {
    font: 700 clamp(1.6rem, 2.5vw, 2.2rem)/1 'Playfair Display', serif;
    letter-spacing: -.03em;
    color: #08232d;
    margin-bottom: 6px;
}
.db-stat__caption {
    margin: 0;
    color: #9aa8a9;
    font-size: .75rem;
    line-height: 1.4;
}
.db-stat__accent {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 3px;
    border-radius: 14px 14px 0 0;
}
.db-stat--coral .db-stat__accent { background: #e56d4f; }
.db-stat--sea   .db-stat__accent { background: #2f8f96; }
.db-stat--sun   .db-stat__accent { background: #f2c66d; }
.db-stat--ink   .db-stat__accent { background: #08232d; }

/* Tabel header */
.db-table-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.db-table-title {
    margin: 0;
    font: 700 1.35rem 'Playfair Display', serif;
    color: #08232d;
}
.db-table-more {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #e56d4f;
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
    transition: gap .2s, color .2s;
}
.db-table-more:hover { color: #bd4d37; gap: 7px; }

/* Responsive dashboard */
@media (max-width: 767.98px) {
    .db-hero__content { flex-direction: column; align-items: flex-start; padding: 24px 20px; }
    .db-hero__right   { flex-direction: row; align-items: center; width: 100%; }
    .db-hero__scene svg { width: 80%; opacity: .35; }
    .db-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .db-stats { grid-template-columns: 1fr; }
    .db-hero__scene svg { display: none; }
}
/* ========== END DASHBOARD / HEADER / FOOTER ========== */

/* Workspace layouts */
.workspace-shell--modern {
    position: relative;
    isolation: isolate;
    background: linear-gradient(180deg, #f8faf8 0%, var(--mist) 34%, #eef4f2 100%);
}
.workspace-shell--modern .workspace-layout { align-items: start; }
.workspace-shell--modern .workspace-content > * {
    animation: workspace-enter .55s cubic-bezier(.2,.75,.25,1) both;
}
.workspace-shell--modern .workspace-content > *:nth-child(2) { animation-delay: .08s; }
.workspace-shell--modern .workspace-content > *:nth-child(3) { animation-delay: .16s; }

.wbs {
    position: sticky;
    top: 96px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: calc(100vh - 128px);
    padding: 16px 12px 12px;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(155deg, #08232d 0%, #0d3542 58%, #14505b 100%);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 8px;
    box-shadow: 0 20px 44px rgba(8,35,45,.16);
    animation: workspace-enter .65s cubic-bezier(.2,.75,.25,1) both;
}
.wbs::before {
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, var(--coral) 0 34%, #2f8f96 34% 68%, var(--sun) 68%);
}
.wbs__head {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 76px;
    padding: 8px 42px 14px 10px;
    border-bottom: 1px solid rgba(255,255,255,.14);
}
.wbs__crane {
    position: absolute;
    top: 0;
    right: 2px;
    width: 62px;
    opacity: .72;
    pointer-events: none;
}
.wbs__crane svg { display: block; width: 100%; height: auto; }
.wbs-trolley {
    transform-box: fill-box;
    transform-origin: center;
    animation: crane-travel 6s ease-in-out infinite alternate;
}
.wbs__head-info { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.wbs__role-badge {
    align-self: flex-start;
    max-width: 100%;
    padding: 4px 8px;
    overflow: hidden;
    color: var(--sun);
    background: rgba(242,198,109,.13);
    border: 1px solid rgba(242,198,109,.22);
    border-radius: 4px;
    font: 700 .61rem 'DM Mono', monospace;
    letter-spacing: .04em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.wbs__head-name {
    max-width: 156px;
    overflow: hidden;
    color: #fff;
    font-size: .86rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wbs__toggle {
    position: absolute;
    top: 12px;
    right: 2px;
    z-index: 2;
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: rgba(255,255,255,.78);
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 6px;
    cursor: pointer;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}
.wbs__toggle:hover { color: #fff; background: var(--coral); transform: translateX(-2px); }
.wbs__nav { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 14px 0; overflow-y: auto; }
.wbs__link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 42px;
    padding: 5px 9px;
    color: rgba(255,255,255,.68);
    border: 1px solid transparent;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
    animation: workspace-enter .45s ease both;
}
.wbs__link:nth-child(2) { animation-delay: .04s; }
.wbs__link:nth-child(3) { animation-delay: .08s; }
.wbs__link:nth-child(4) { animation-delay: .12s; }
.wbs__link:nth-child(5) { animation-delay: .16s; }
.wbs__link:nth-child(6) { animation-delay: .2s; }
.wbs__link:hover,
.wbs__link.is-active {
    color: #fff;
    background: rgba(255,255,255,.09);
    border-color: rgba(255,255,255,.08);
    transform: translateX(3px);
}
.wbs__link.is-active { box-shadow: inset 3px 0 var(--coral); }
.wbs__icon {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;
    color: var(--sun);
    background: rgba(255,255,255,.07);
    border-radius: 6px;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}
.wbs__icon svg { width: 16px; height: 16px; }
.wbs__link:hover .wbs__icon,
.wbs__link.is-active .wbs__icon { color: #fff; background: rgba(229,109,79,.72); transform: scale(1.05); }
.wbs__label { min-width: 0; overflow-wrap: anywhere; }
.wbs__foot { display: flex; flex-direction: column; gap: 4px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.14); }
.wbs__link--logout { color: #f3a18d; }
.wbs__link--logout .wbs__icon { color: #f3a18d; }
.wbs__link--logout:hover .wbs__icon { color: #fff; background: var(--coral); }

.ws-page-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 178px;
    margin: 0 0 20px;
    padding: 28px clamp(22px, 3vw, 38px);
    overflow: hidden;
    color: #fff;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px), linear-gradient(115deg, #08232d 0%, #104653 74%, #216d72 100%);
    border: 1px solid rgba(8,35,45,.08);
    border-radius: 8px;
    box-shadow: 0 18px 38px rgba(8,35,45,.12);
}
.ws-page-hero__text { position: relative; z-index: 1; max-width: 720px; }
.ws-page-hero__kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    color: var(--sun);
    font: 700 .66rem 'DM Mono', monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ws-page-hero__kicker::before { width: 18px; height: 2px; content: ''; background: var(--coral); }
.ws-page-hero__title { margin: 0 0 8px; color: #fff; font: 700 2.45rem/1.08 'Playfair Display', serif; }
.ws-page-hero__desc { max-width: 620px; margin: 0; color: rgba(255,255,255,.72); font-size: .86rem; }
.ws-page-hero__actions { position: relative; z-index: 1; display: flex; flex: 0 0 auto; align-items: center; gap: 10px; }
.ws-status-pill { display: inline-flex; align-items: center; gap: 8px; padding: 8px 10px; color: rgba(255,255,255,.8); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 5px; font: 700 .64rem 'DM Mono', monospace; text-transform: uppercase; }
.ws-status-pill__dot { width: 7px; height: 7px; background: #75d5a2; border-radius: 50%; box-shadow: 0 0 0 4px rgba(117,213,162,.13); animation: status-breathe 2.4s ease-in-out infinite; }
.ws-primary-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 14px; color: #fff; background: var(--coral); border: 1px solid var(--coral); border-radius: 5px; box-shadow: 0 8px 18px rgba(229,109,79,.2); font-size: .73rem; font-weight: 800; transition: background .2s ease, box-shadow .2s ease, transform .2s ease; }
.ws-primary-btn:hover { color: #fff; background: var(--coral-dark); border-color: var(--coral-dark); box-shadow: 0 12px 22px rgba(229,109,79,.28); transform: translateY(-2px); }
.ws-primary-btn svg { transition: transform .2s ease; }
.ws-primary-btn:hover svg { transform: translateX(3px); }
.ws-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 44px; margin-bottom: 12px; padding: 0 2px 10px; border-bottom: 1px solid rgba(19,47,61,.12); }
.ws-toolbar__count { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: .76rem; font-weight: 800; }
.ws-toolbar__count svg { color: var(--coral); }
.ws-toolbar__updated { color: var(--ink-soft); font: 500 .64rem 'DM Mono', monospace; }
.table-shell { overflow: auto; background: #fff; border: 1px solid rgba(19,47,61,.08); border-radius: 8px; box-shadow: 0 14px 30px rgba(8,35,45,.055); }
.workspace-table, .dashboard-activity-table { min-width: 620px; margin: 0; }
.workspace-table thead th, .dashboard-activity-table thead th { padding: 13px 16px; color: var(--ink-soft); background: #f8faf9; border-bottom: 1px solid var(--line); font: 700 .62rem 'DM Mono', monospace; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.workspace-table tbody td, .dashboard-activity-table tbody td { padding: 14px 16px; color: var(--ink); border-bottom-color: #edf1ef; font-size: .77rem; }
.workspace-table tbody tr, .dashboard-activity-table tbody tr { transition: background .18s ease; }
.workspace-table tbody tr:hover, .dashboard-activity-table tbody tr:hover { background: #f9fbfa; }
.workspace-table tbody tr:last-child td, .dashboard-activity-table tbody tr:last-child td { border-bottom: 0; }
.workspace-table .empty-state, .dashboard-activity-table .empty-state { padding: 44px 20px !important; color: var(--ink-soft); text-align: center; }
.sidebar-reopen { position: fixed; top: 108px; left: 14px; z-index: 30; display: none; width: 42px; height: 42px; place-items: center; color: #fff; background: var(--deep); border: 1px solid rgba(255,255,255,.18); border-radius: 6px; box-shadow: 0 10px 24px rgba(8,35,45,.2); cursor: pointer; transition: background .2s ease, transform .2s ease; }
.sidebar-reopen:hover { background: var(--coral); transform: translateX(2px); }
.workspace-sidebar-hidden .sidebar-reopen { display: grid; animation: workspace-enter .25s ease both; }
.workspace-sidebar-column { transition: width .3s ease, opacity .25s ease, transform .3s ease; }
.workspace-sidebar-hidden .workspace-sidebar-column { transform: translateX(-8px); }

@keyframes workspace-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes crane-travel { from { transform: translateX(-4px); } to { transform: translateX(13px); } }
@keyframes status-breathe { 50% { box-shadow: 0 0 0 6px rgba(117,213,162,.05); } }

@media (max-width: 991.98px) {
    .wbs { position: relative; top: auto; min-height: auto; }
    .wbs__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wbs__foot { flex-direction: row; }
    .wbs__foot .wbs__link { flex: 1; }
    .ws-page-hero { min-height: 160px; }
    .sidebar-reopen { top: 90px; }
}
@media (max-width: 575.98px) {
    .workspace-shell--modern { padding-top: 18px; }
    .wbs { padding: 14px 10px 10px; }
    .wbs__nav { gap: 3px; }
    .wbs__link { gap: 7px; min-height: 40px; padding: 4px 6px; font-size: .68rem; }
    .wbs__icon { width: 27px; height: 27px; flex-basis: 27px; }
    .ws-page-hero { align-items: flex-start; flex-direction: column; gap: 18px; padding: 22px 20px; }
    .ws-page-hero__title { font-size: 1.9rem; }
    .ws-page-hero__actions { flex-wrap: wrap; }
    .ws-toolbar { align-items: flex-start; flex-direction: column; gap: 5px; }
    .workspace-table, .dashboard-activity-table { min-width: 560px; }
}
@media (prefers-reduced-motion: reduce) {
    .wbs *,
    .workspace-shell--modern .workspace-content > *,
    .ws-status-pill__dot,
    .sidebar-reopen { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Visitor pages */
.workspace-shell--visitor {
    background: linear-gradient(180deg, #f8faf8 0%, var(--mist) 42%, #edf4f2 100%);
}
.workspace-shell--visitor .workspace-content > * {
    animation: visitor-rise .55s cubic-bezier(.2,.75,.25,1) both;
}
.workspace-shell--visitor .workspace-content > *:nth-child(2) { animation-delay: .08s; }
.workspace-shell--visitor .workspace-content > *:nth-child(3) { animation-delay: .16s; }
.workspace-shell--visitor .workspace-heading {
    position: relative;
    align-items: center;
    min-height: 0;
    margin-bottom: 22px;
    padding: 28px 32px;
    overflow: hidden;
    color: #fff;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px), linear-gradient(115deg, #08232d 0%, #104653 74%, #216d72 100%);
    border: 1px solid rgba(8,35,45,.08);
    border-radius: 8px;
    box-shadow: 0 18px 38px rgba(8,35,45,.12);
}
.workspace-shell--visitor .workspace-heading > div { position: relative; z-index: 1; }
.workspace-shell--visitor .workspace-heading .eyebrow { margin-bottom: 10px; color: var(--sun); }
.workspace-shell--visitor .workspace-heading h1 { margin-bottom: 8px; color: #fff; font-size: 2.35rem; letter-spacing: 0; }
.workspace-shell--visitor .workspace-heading p { max-width: 680px; color: rgba(255,255,255,.74); font-size: .86rem; }
.workspace-shell--visitor .workspace-heading > .status-pill {
    flex: 0 0 auto;
    padding: 8px 11px;
    color: #fff;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 5px;
    font: 700 .65rem 'DM Mono', monospace;
    text-transform: uppercase;
}
.workspace-shell--visitor .workspace-heading > a { position: relative; z-index: 1; flex: 0 0 auto; }
.workspace-shell--visitor .dashboard-card,
.workspace-shell--visitor .myticket-filter-panel,
.workspace-shell--visitor .orders-filter-panel {
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(8,35,45,.055);
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.workspace-shell--visitor .dashboard-card:hover,
.workspace-shell--visitor .myticket-filter-panel:hover,
.workspace-shell--visitor .orders-filter-panel:hover {
    border-color: rgba(47,143,150,.26);
    box-shadow: 0 16px 34px rgba(8,35,45,.085);
    transform: translateY(-2px);
}
.workspace-shell--visitor .myticket-card,
.workspace-shell--visitor .program-card-modern { animation: visitor-rise .5s ease both; }
.workspace-shell--visitor .myticket-card:nth-child(2),
.workspace-shell--visitor .program-card-modern:nth-child(2) { animation-delay: .07s; }
.workspace-shell--visitor .myticket-card:nth-child(3),
.workspace-shell--visitor .program-card-modern:nth-child(3) { animation-delay: .14s; }
.workspace-shell--visitor .myticket-card:nth-child(4),
.workspace-shell--visitor .program-card-modern:nth-child(4) { animation-delay: .21s; }
.workspace-shell--visitor .myticket-card-banner { position: relative; }
.workspace-shell--visitor .myticket-card-banner::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    content: '';
    background: linear-gradient(90deg, var(--coral), var(--sun), #2f8f96);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s ease;
}
.workspace-shell--visitor .myticket-card:hover .myticket-card-banner::after { transform: scaleX(1); }
.workspace-shell--visitor .myticket-card--today {
    background: linear-gradient(145deg, #fff 0%, #f0fbf7 100%);
    border-color: #79c6aa;
    box-shadow: 0 16px 34px rgba(21,112,84,.14);
}
.workspace-shell--visitor .myticket-card--today .myticket-card-banner {
    background: linear-gradient(115deg, #0b5548 0%, #12806d 68%, #27a88b 100%);
}
.workspace-shell--visitor .myticket-card--today .myticket-card-icon {
    color: #0b5548;
    background: #b7f0d4;
}
.workspace-shell--visitor .myticket-card--today .myticket-card-banner::after {
    height: 4px;
    background: linear-gradient(90deg, #b7f0d4, #ffe08a, #fff);
    transform: scaleX(1);
}
.workspace-shell--visitor .myticket-today-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 7px;
    padding: 4px 8px;
    color: #073d32;
    background: #b7f0d4;
    border-radius: 99px;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .02em;
}
.workspace-shell--visitor .myticket-item-line--today {
    position: relative;
    margin: 4px -10px;
    padding: 8px 10px !important;
    background: #e8f8f0;
    border-left: 3px solid #20a178;
    border-radius: 4px;
}
.workspace-shell--visitor .myticket-item-line--today strong,
.workspace-shell--visitor .myticket-item-line--today small,
.workspace-shell--visitor .myticket-item-line--today small i {
    color: #145c48;
}
.workspace-shell--visitor .myticket-items .myticket-item-today-label {
    flex: 0 0 auto;
    align-self: center;
    padding: 4px 7px;
    color: #0b5548;
    background: #b7f0d4;
    border-radius: 99px;
    font-size: .62rem;
    font-weight: 800;
}
.workspace-shell--visitor .myticket-empty-state,
.workspace-shell--visitor .program-empty-state {
    padding: 44px clamp(22px, 4vw, 52px);
    background: linear-gradient(135deg, #fff 0%, #f1f8f6 100%);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(8,35,45,.055);
}
.workspace-shell--visitor .myticket-empty-state h2,
.workspace-shell--visitor .program-empty-state h2 { margin-bottom: 10px; font: 700 1.8rem/1.15 'Playfair Display', serif; }
.workspace-shell--visitor .calendar-shell {
    padding: 22px;
    background: linear-gradient(180deg, #fff 0%, #f8fbfa 100%);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 16px 34px rgba(8,35,45,.07);
}
.workspace-shell--visitor .calendar-toolbar { border-color: var(--line); }
.workspace-shell--visitor .calendar-nav-btn { border-radius: 5px !important; transition: transform .2s ease, box-shadow .2s ease; }
.workspace-shell--visitor .calendar-nav-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(8,35,45,.1) !important; }
.workspace-shell--visitor .calendar-weekdays > div { color: var(--ink-soft) !important; font: 700 .66rem 'DM Mono', monospace; text-transform: uppercase; }
.workspace-shell--visitor .calendar-weekdays > div:last-child { color: var(--coral) !important; }
.workspace-shell--visitor .calendar-day {
    min-height: 166px;
    padding: 9px;
    background: #f7faf9;
    border: 1px solid rgba(19,47,61,.1);
    border-radius: 8px;
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.workspace-shell--visitor .calendar-day.is-current { background: #fff; }
.workspace-shell--visitor .calendar-day.is-muted { background: #f0f3f1; }
.workspace-shell--visitor .calendar-day:hover { z-index: 1; background: #fff; border-color: rgba(47,143,150,.4); box-shadow: 0 10px 20px rgba(8,35,45,.08); transform: translateY(-2px); }
.workspace-shell--visitor .calendar-event { border-color: rgba(19,47,61,.09); border-radius: 6px; box-shadow: 0 4px 12px rgba(8,35,45,.045); transition: transform .18s ease, box-shadow .18s ease; }
.workspace-shell--visitor .calendar-event:hover { box-shadow: 0 8px 16px rgba(8,35,45,.09); transform: translateY(-2px); }
.workspace-shell--visitor .calendar-event-title { color: var(--ink); }
.workspace-shell--visitor .calendar-empty { border-color: rgba(19,47,61,.15); border-radius: 6px; }
.workspace-shell--visitor .calendar-day-cell:nth-child(7n + 1) { animation: visitor-rise .4s ease both; }
.workspace-shell--visitor .calendar-day-cell:nth-child(7n + 2) { animation: visitor-rise .4s .04s ease both; }
.workspace-shell--visitor .calendar-day-cell:nth-child(7n + 3) { animation: visitor-rise .4s .08s ease both; }
.workspace-shell--visitor .calendar-day-cell:nth-child(7n + 4) { animation: visitor-rise .4s .12s ease both; }
.workspace-shell--visitor-calendar { background: radial-gradient(ellipse at 90% 4%,rgba(62,166,159,.1),transparent 30%),linear-gradient(180deg,#f8faf8 0%,var(--mist) 52%,#edf4f2 100%); }
.workspace-shell--visitor-calendar .workspace-content { gap: 22px; }
.visitor-calendar-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 252px;
    padding: 34px clamp(24px,4vw,52px);
    padding-right: clamp(260px,32vw,390px);
    overflow: hidden;
    color: #fff;
    background: radial-gradient(ellipse at 78% 14%,rgba(67,221,192,.2),transparent 35%),repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px),linear-gradient(118deg,#092735,#0d4b58 66%,#107b79);
    border: 1px solid rgba(132,244,222,.18);
    border-radius: 14px;
    box-shadow: 0 22px 48px rgba(8,35,45,.16);
    isolation: isolate;
}
.visitor-calendar-hero::before { position: absolute; z-index: -1; inset: 0; content: ''; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(90deg,#000,transparent 85%); }
.visitor-calendar-hero::after { position: absolute; z-index: -1; right: 18%; bottom: -170px; width: 360px; height: 245px; content: ''; background: rgba(93,235,203,.13); border-radius: 50%; filter: blur(50px); }
.visitor-calendar-hero__copy { position: relative; z-index: 1; max-width: 610px; }
.visitor-calendar-hero__eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #9af0dc; font: 700 .64rem 'DM Mono',monospace; letter-spacing: .12em; text-transform: uppercase; }
.visitor-calendar-hero__live { width: 7px; height: 7px; flex: 0 0 7px; background: #68eeb6; border-radius: 50%; box-shadow: 0 0 0 4px rgba(104,238,182,.13),0 0 14px rgba(104,238,182,.7); }
.visitor-calendar-hero h1 { margin: 15px 0 8px; color: #fff; font: 700 clamp(2.1rem,4vw,3.25rem)/1.08 'Playfair Display',serif; letter-spacing: -.04em; }
.visitor-calendar-hero p { max-width: 510px; margin: 0; color: rgba(236,255,250,.75); font-size: .87rem; }
.visitor-calendar-hero__badge { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; padding: 8px 11px; color: #d6fff2; background: rgba(154,240,220,.1); border: 1px solid rgba(154,240,220,.2); border-radius: 6px; font-size: .68rem; font-weight: 700; }
.visitor-calendar-hero__badge i { color: #ffd27e; }
.visitor-calendar-hero__index { position: absolute; right: 20px; bottom: 16px; color: rgba(255,255,255,.42); font: 600 .53rem 'DM Mono',monospace; letter-spacing: .1em; }
.visitor-calendar-scene { position: absolute; top: 50%; right: 7%; display: grid; width: clamp(230px,28vw,320px); aspect-ratio: 3/2; place-items: center; transform: translateY(-50%); }
.visitor-calendar-scene > svg { position: relative; z-index: 1; display: block; width: 100%; overflow: visible; filter: drop-shadow(0 12px 18px rgba(2,19,30,.24)); }
.visitor-calendar-scene__orbit { position: absolute; top: 50%; left: 50%; width: 108%; height: 78%; border: 1px solid rgba(150,246,226,.2); border-radius: 50%; }
.visitor-calendar-scene__orbit--one { transform: translate(-50%,-50%) rotate(-18deg); animation: visitor-calendar-orbit 17s linear infinite; }
.visitor-calendar-scene__orbit--two { width: 90%; height: 94%; border-color: rgba(242,198,109,.16); transform: translate(-50%,-50%) rotate(27deg); animation: visitor-calendar-orbit 23s linear infinite reverse; }
.visitor-calendar-scene__horizon { fill: none; stroke: rgba(107,224,202,.65); stroke-linecap: round; stroke-width: 2; stroke-dasharray: 5 6; animation: visitor-calendar-horizon 2.2s linear infinite; }
.visitor-calendar-scene__sun { fill: #ffd27e; stroke: #ffdf9d; stroke-width: 2; filter: drop-shadow(0 0 11px rgba(255,210,126,.45)); transform-box: fill-box; transform-origin: center; animation: visitor-calendar-sun 12s ease-in-out infinite; }
.visitor-calendar-scene__sun path { fill: none; stroke: #ffd27e; stroke-linecap: round; stroke-width: 3; }
.visitor-calendar-scene__moon { fill: #d8e8ff; filter: drop-shadow(0 0 10px rgba(176,207,255,.5)); transform-box: fill-box; transform-origin: center; animation: visitor-calendar-moon 12s ease-in-out infinite; }
.visitor-calendar-scene__star { fill: #ffd27e; }
.visitor-calendar-scene__calendar > rect { fill: rgba(224,255,245,.96); stroke: #a3f3de; stroke-width: 2; }
.visitor-calendar-scene__calendar-top { fill: #167f7b; }
.visitor-calendar-scene__rings { fill: none; stroke: #ffcf89; stroke-linecap: round; stroke-width: 5; }
.visitor-calendar-scene__grid { fill: none; stroke: #72aaa3; stroke-linecap: round; stroke-width: 3; }
.visitor-calendar-scene__day { fill: #f4a477; stroke: #fff0cc; stroke-width: 2; animation: visitor-calendar-day 3s ease-in-out infinite; }
.visitor-calendar-scene__check { fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.visitor-calendar-scene__spark { fill: #a2f1df; filter: drop-shadow(0 0 5px rgba(162,241,223,.8)); animation: visitor-calendar-spark 2.4s ease-in-out infinite alternate; }
.visitor-calendar-scene__spark--two { animation-delay: .8s; }
.visitor-calendar-scene__caption { position: absolute; right: 0; bottom: -4px; color: rgba(184,241,223,.62); font: 600 .48rem 'DM Mono',monospace; letter-spacing: .14em; }
.workspace-shell--visitor-calendar .calendar-shell { padding: 24px; background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,250,248,.98)); border: 1px solid rgba(19,47,61,.1); border-radius: 13px; box-shadow: 0 18px 38px rgba(8,35,45,.075); }
.workspace-shell--visitor-calendar .calendar-toolbar { padding-bottom: 16px; }
.workspace-shell--visitor-calendar .calendar-title-wrap .eyebrow { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 5px; color: #22877f; font: 700 .6rem 'DM Mono',monospace; letter-spacing: .1em; text-transform: uppercase; }
.workspace-shell--visitor-calendar .calendar-title-wrap .eyebrow i { color: #d39d3b; }
.workspace-shell--visitor-calendar .calendar-title-wrap .workspace-section-title { color: #143d48; font-size: 1.55rem; }
.workspace-shell--visitor-calendar .calendar-nav-buttons { gap: 8px; }
.workspace-shell--visitor-calendar .calendar-nav-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 9px 13px !important; border-radius: 8px !important; font-size: .72rem; font-weight: 800 !important; }
.workspace-shell--visitor-calendar .calendar-nav-btn.btn-outline-ink { color: #1a5960; background: #edf8f4; border-color: #d7ebe4; }
.workspace-shell--visitor-calendar .calendar-nav-btn.btn-coral { background: linear-gradient(135deg,#e87658,#cc5945); border: 0; box-shadow: 0 7px 16px rgba(204,89,69,.16) !important; }
.workspace-shell--visitor-calendar .calendar-legend { gap: 8px; }
.visitor-calendar-legend { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid transparent; border-radius: 99px; font-size: .68rem; font-weight: 800; }
.visitor-calendar-legend--ticket { color: #167576; background: #e5f7f2; border-color: #d1eee5; }
.visitor-calendar-legend--program { color: #456f9d; background: #edf4ff; border-color: #dce8fa; }
.visitor-calendar-legend--visit { color: #a4751d; background: #fff5d9; border-color: #f4e8c2; }
.workspace-shell--visitor-calendar .calendar-weekdays { border-color: #e3eeea; }
.workspace-shell--visitor-calendar .calendar-weekdays > div { color: #526d73 !important; font: 700 .63rem 'DM Mono',monospace; letter-spacing: .06em; }
.workspace-shell--visitor-calendar .calendar-weekdays > div:last-child { color: #dd7055 !important; }
.workspace-shell--visitor-calendar .calendar-day { min-height: 166px; padding: 9px; background: linear-gradient(145deg,#f5faf8,#eff6f4); border-color: rgba(19,47,61,.1); border-radius: 10px; }
.workspace-shell--visitor-calendar .calendar-day.is-current { background: linear-gradient(145deg,#fff,#f8fcfa); }
.workspace-shell--visitor-calendar .calendar-day.is-muted { background: #f1f4f2; }
.workspace-shell--visitor-calendar .calendar-day-header { min-height: 24px; }
.workspace-shell--visitor-calendar .calendar-date { display: grid; width: 28px; height: 28px; place-items: center; background: rgba(47,143,150,.08); border-radius: 8px; }
.workspace-shell--visitor-calendar .calendar-day-cell:nth-child(7n) .calendar-date { color: #dc7058 !important; background: #fff0e9; }
.workspace-shell--visitor-calendar .calendar-event { padding: 9px; background: #fff; border: 1px solid rgba(19,47,61,.08); border-left: 3px solid #2a9a88; border-radius: 8px; }
.workspace-shell--visitor-calendar .calendar-event--program { border-left-color: #648fc2; }
.workspace-shell--visitor-calendar .calendar-event--visit { border-left-color: #d2a339; }
.workspace-shell--visitor-calendar .calendar-event-title { display: flex; align-items: flex-start; gap: 6px; color: #183e49; font-size: .71rem; }
.workspace-shell--visitor-calendar .calendar-event-title i { flex: 0 0 auto; margin-top: 2px; color: #21877f; }
.workspace-shell--visitor-calendar .calendar-event--program .calendar-event-title i { color: #648fc2; }
.workspace-shell--visitor-calendar .calendar-event--visit .calendar-event-title i { color: #bd8e2c; }
.workspace-shell--visitor-calendar .calendar-event-time,
.workspace-shell--visitor-calendar .calendar-event-meta { color: #62787c; font-size: .65rem; }
.visitor-calendar-event-badge { display: inline-flex; align-items: center; margin-top: 5px; padding: 4px 7px; border: 1px solid transparent; border-radius: 99px; font-size: .59rem; font-weight: 800; }
.visitor-calendar-event-badge--ticket { color: #167576; background: #e5f7f2; border-color: #d1eee5; }
.visitor-calendar-event-badge--program { color: #456f9d; background: #edf4ff; border-color: #dce8fa; }
.visitor-calendar-event-badge--visit { color: #a4751d; background: #fff5d9; border-color: #f4e8c2; }
.visitor-calendar-event-badge--other { color: #655c9b; background: #f0effb; border-color: #e1dff4; }
.workspace-shell--visitor-calendar .calendar-empty { min-height: 100px; color: #7c9092; background: rgba(244,249,247,.8); border-color: #dce9e4; font-size: .67rem; }
@keyframes visitor-calendar-orbit { to { rotate: 360deg; } }
@keyframes visitor-calendar-sun { 0%,8% { opacity: 0; transform: translateY(18px) scale(.8); } 22%,38% { opacity: 1; transform: translateY(-5px) scale(1); } 52%,60% { opacity: 0; transform: translateY(19px) scale(.8); } 100% { opacity: 0; transform: translateY(19px) scale(.8); } }
@keyframes visitor-calendar-moon { 0%,50% { opacity: 0; transform: translateY(19px) scale(.8); } 64%,80% { opacity: 1; transform: translateY(-5px) scale(1); } 94%,100% { opacity: 0; transform: translateY(19px) scale(.8); } }
@keyframes visitor-calendar-horizon { to { stroke-dashoffset: -22; } }
@keyframes visitor-calendar-day { 0%,100% { transform: scale(1); } 50% { transform: scale(1.12); } }
@keyframes visitor-calendar-spark { to { opacity: .45; transform: scale(.7); } }
@media (max-width: 767.98px) {
    .visitor-calendar-hero { min-height: 232px; padding: 28px 23px; }
    .visitor-calendar-hero__copy { max-width: 72%; }
    .visitor-calendar-scene { right: -5px; width: 210px; opacity: .72; }
    .visitor-calendar-scene__caption { right: 8px; font-size: .4rem; }
    .workspace-shell--visitor-calendar .calendar-shell { padding: 17px; }
    .workspace-shell--visitor-calendar .calendar-toolbar { align-items: flex-start; }
}
@media (max-width: 575.98px) {
    .visitor-calendar-hero { min-height: 222px; padding: 24px 19px; }
    .visitor-calendar-hero__copy { max-width: 100%; }
    .visitor-calendar-hero h1 { max-width: 72%; font-size: 2rem; }
    .visitor-calendar-hero p { max-width: 68%; font-size: .78rem; }
    .visitor-calendar-hero__badge { margin-top: 12px; padding: 7px 9px; font-size: .61rem; }
    .visitor-calendar-scene { top: auto; right: -32px; bottom: -38px; width: 165px; opacity: .43; transform: none; }
    .visitor-calendar-scene__caption { display: none; }
    .visitor-calendar-hero__index { right: 12px; bottom: 9px; }
    .workspace-shell--visitor-calendar .calendar-shell { padding: 14px; }
    .workspace-shell--visitor-calendar .calendar-nav-buttons { width: 100%; }
    .workspace-shell--visitor-calendar .calendar-nav-btn { flex: 1; padding: 9px 8px !important; font-size: .65rem; }
}
@media (prefers-reduced-motion: reduce) {
    .visitor-calendar-scene *,
    .visitor-calendar-scene *::before,
    .visitor-calendar-scene *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
.workspace-shell--visitor .booking-summary {
    position: sticky;
    top: 98px;
    background: linear-gradient(155deg, #e7f4f1 0%, #f4f7f5 70%, #fff2e9 100%);
    border: 1px solid rgba(47,143,150,.18);
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(8,35,45,.08);
}
.workspace-shell--visitor .booking-summary h3 { font-size: 1.35rem; }
.workspace-shell--visitor .booking-mode-banner { border-radius: 6px; }
.workspace-shell--visitor .ws-steps { margin-bottom: 22px; }
.workspace-shell--visitor .ws-step { transition: color .2s ease, transform .2s ease; }
.workspace-shell--visitor .ws-step--active { transform: translateY(-2px); }
.workspace-shell--visitor .ws-participant-group { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 20px rgba(8,35,45,.04); }
.workspace-shell--visitor .ws-participant-group__head { background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 13px), linear-gradient(110deg, #08232d, #104653 74%, #216d72); }
.workspace-shell--visitor .ws-participant-row { transition: background .2s ease; }
.workspace-shell--visitor .ws-participant-row:hover { background: #fbfdfc; }
.workspace-shell--visitor .table-shell { border-radius: 8px; }
.workspace-shell--visitor .detail-transaction-hero { transition: transform .22s ease, box-shadow .22s ease; }
.workspace-shell--visitor .detail-transaction-hero:hover { box-shadow: 0 20px 38px rgba(8,35,45,.18); transform: translateY(-2px); }

.workspace-shell--visitor-tickets {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(ellipse at 92% 4%, rgba(46,190,184,.13), transparent 32rem),
        radial-gradient(ellipse at 6% 40%, rgba(240,127,94,.09), transparent 28rem),
        repeating-linear-gradient(0deg, rgba(17,73,83,.018) 0 1px, transparent 1px 34px),
        linear-gradient(180deg, #f3faf9, #f3f7fa 56%, #edf5f3);
}
.workspace-shell--visitor-tickets > .container-xl { position: relative; z-index: 1; }
.workspace-shell--visitor-tickets .workspace-heading {
    background:
        radial-gradient(ellipse at 88% 12%, rgba(74,218,203,.22), transparent 38%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.03) 0 1px, transparent 1px 13px),
        linear-gradient(112deg, #092e3c, #105765 62%, #146d73);
    border-color: rgba(22,134,143,.28);
    border-radius: 12px;
    box-shadow: 0 18px 38px rgba(9,63,76,.16);
}
.workspace-shell--visitor-tickets .workspace-heading::before {
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, #45d8c0, #72d1e0, #f18d69);
}
.workspace-shell--visitor-tickets .workspace-heading .eyebrow { color: #82e6d7; }
.workspace-shell--visitor-tickets .workspace-heading h1 {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    font-weight: 800;
    letter-spacing: -.045em;
}
.workspace-shell--visitor-tickets .workspace-heading p { color: rgba(255,255,255,.74); }
.workspace-shell--visitor-tickets .workspace-heading > .status-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #9af0d6;
    background: rgba(73,213,172,.11);
    border-color: rgba(130,239,203,.28);
    border-radius: 7px;
}
.workspace-shell--visitor-tickets .myticket-overview {
    gap: 1px;
    overflow: hidden;
    background: rgba(21,128,141,.16);
    border: 1px solid rgba(21,128,141,.16);
    border-radius: 12px;
    box-shadow: 0 14px 30px rgba(14,65,77,.075);
}
.workspace-shell--visitor-tickets .myticket-overview > div {
    position: relative;
    background: linear-gradient(145deg, #fff, #f0faf9);
}
.workspace-shell--visitor-tickets .myticket-overview > div:nth-child(2) { background: linear-gradient(145deg, #fff, #f2f8fc); }
.workspace-shell--visitor-tickets .myticket-overview > div:nth-child(3) { background: linear-gradient(145deg, #fff, #fff8ee); }
.workspace-shell--visitor-tickets .myticket-overview > div:nth-child(-n+3) { padding-right: 62px; }
.workspace-shell--visitor-tickets .myticket-overview .eyebrow { color: #167d82; }
.workspace-shell--visitor-tickets .myticket-overview strong { color: #103d4a; }
.workspace-shell--visitor-tickets .myticket-overview-icon {
    position: absolute;
    top: 21px;
    right: 20px;
    display: grid;
    width: 35px;
    height: 35px;
    place-items: center;
    color: #148c8a;
    background: #ddf7f0;
    border: 1px solid rgba(20,140,138,.12);
    border-radius: 10px;
    font-size: 1rem;
}
.workspace-shell--visitor-tickets .myticket-overview > div:nth-child(2) .myticket-overview-icon { color: #347fa2; background: #e6f3fb; }
.workspace-shell--visitor-tickets .myticket-overview > div:nth-child(3) .myticket-overview-icon { color: #aa7415; background: #fff1d2; }
.workspace-shell--visitor-tickets .myticket-overview-note { color: #43636b; }
.workspace-shell--visitor-tickets .myticket-overview-note i {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, #ef8059, #d95353);
    border-radius: 11px;
    box-shadow: 0 6px 15px rgba(217,83,83,.2);
}
.workspace-shell--visitor-tickets .myticket-filter-panel {
    padding: 23px 25px;
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(241,250,249,.96));
    border: 1px solid rgba(21,128,141,.15);
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(14,65,77,.065);
}
.workspace-shell--visitor-tickets .myticket-filter-heading .eyebrow { color: #168f91; }
.workspace-shell--visitor-tickets .myticket-filter-heading h2 {
    color: #103d4a;
    font-family: 'Manrope', sans-serif;
    font-size: 1.24rem;
    font-weight: 800;
    letter-spacing: -.025em;
}
.workspace-shell--visitor-tickets .myticket-filter-panel .form-control,
.workspace-shell--visitor-tickets .myticket-filter-panel .form-select {
    border-color: rgba(20,112,126,.18);
    border-radius: 7px;
}
.workspace-shell--visitor-tickets .myticket-filter-panel .form-control:focus,
.workspace-shell--visitor-tickets .myticket-filter-panel .form-select:focus {
    border-color: #25aaa4;
    box-shadow: 0 0 0 3px rgba(37,170,164,.13);
}
.workspace-shell--visitor-tickets .myticket-filter-panel .btn-coral {
    min-height: 42px;
    color: #073b43;
    background: linear-gradient(110deg, #70e2c9, #7dcde0);
    border: 0;
    border-radius: 7px;
    font-weight: 800;
}
.workspace-shell--visitor-tickets .myticket-card {
    border-color: rgba(20,112,126,.14);
    border-radius: 12px;
    box-shadow: 0 14px 32px rgba(14,65,77,.075);
}
.workspace-shell--visitor-tickets .myticket-card:hover { box-shadow: 0 22px 42px rgba(14,65,77,.14); }
.workspace-shell--visitor-tickets .myticket-card-banner {
    min-height: 124px;
    background:
        radial-gradient(ellipse at 88% 6%, rgba(69,216,192,.2), transparent 42%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, transparent 1px 14px),
        linear-gradient(115deg, #092e3c, #105765 74%, #146d73);
}
.workspace-shell--visitor-tickets .myticket-card-banner .eyebrow { color: #86e6d6; }
.workspace-shell--visitor-tickets .myticket-card-icon {
    color: #073b43;
    background: linear-gradient(145deg, #7de8d0, #81cfe2);
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 12px;
    box-shadow: 0 7px 18px rgba(4,26,35,.22);
}
.workspace-shell--visitor-tickets .myticket-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #d8fff0;
    background: rgba(46,190,144,.19);
    border: 1px solid rgba(130,239,203,.28);
    border-radius: 7px;
}
.workspace-shell--visitor-tickets .myticket-status-badge.is-success { color: #d8fff0; background: rgba(46,190,144,.19); }
.workspace-shell--visitor-tickets .myticket-status-badge.is-pending { color: #ffe9ac; background: rgba(219,164,55,.19); border-color: rgba(255,218,125,.3); }
.workspace-shell--visitor-tickets .myticket-status-badge.is-danger { color: #ffd5c9; background: rgba(220,91,75,.2); border-color: rgba(255,169,146,.3); }
.workspace-shell--visitor-tickets .myticket-status-badge.is-neutral { color: #dbeef1; background: rgba(191,225,231,.14); }
.workspace-shell--visitor-tickets .myticket-card-body { background: linear-gradient(160deg, #fff, #fbfefe); }
.workspace-shell--visitor-tickets .myticket-card-topline {
    border-color: rgba(20,112,126,.12);
}
.workspace-shell--visitor-tickets .myticket-card-topline .section-kicker,
.workspace-shell--visitor-tickets .myticket-total > span,
.workspace-shell--visitor-tickets .myticket-items > .section-kicker {
    color: #66858b;
}
.workspace-shell--visitor-tickets .myticket-card-topline .section-kicker i,
.workspace-shell--visitor-tickets .myticket-total > span i,
.workspace-shell--visitor-tickets .myticket-items > .section-kicker i { color: #168f91; }
.workspace-shell--visitor-tickets .myticket-total strong { color: #d96b4c; }
.workspace-shell--visitor-tickets .myticket-card-meta {
    color: #496b73;
    border-bottom: 1px solid rgba(20,112,126,.1);
}
.workspace-shell--visitor-tickets .myticket-card-meta i { color: #178f91; }
.workspace-shell--visitor-tickets .myticket-items { border-color: rgba(20,112,126,.12); }
.workspace-shell--visitor-tickets .myticket-item-line {
    position: relative;
    margin: 0 -10px;
    padding: 9px 10px !important;
    border-bottom: 1px solid rgba(20,112,126,.07);
}
.workspace-shell--visitor-tickets .myticket-item-line:last-of-type { border-bottom: 0; }
.workspace-shell--visitor-tickets .myticket-item-line > strong {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #123f4a;
}
.workspace-shell--visitor-tickets .myticket-item-line .item-ticket-icon { color: #178f91; }
.workspace-shell--visitor-tickets .myticket-item-line .myticket-quantity {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    color: #116f77;
    background: #e4f7f2;
    border-radius: 6px;
    font-size: .72rem;
}
.workspace-shell--visitor-tickets .myticket-item-line small { color: #6e8589; }
.workspace-shell--visitor-tickets .myticket-item-line small i { color: #168f91; }
.workspace-shell--visitor-tickets .myticket-card-actions { border-color: rgba(20,112,126,.12); }
.workspace-shell--visitor-tickets .myticket-card-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    border-radius: 7px;
    font-weight: 800;
}
.workspace-shell--visitor-tickets .myticket-card-actions .btn-outline-ink {
    color: #117f86;
    border-color: rgba(17,127,134,.35);
}
.workspace-shell--visitor-tickets .myticket-card-actions .btn-outline-ink:hover {
    color: #fff;
    background: #117f86;
    border-color: #117f86;
}
.workspace-shell--visitor-tickets .myticket-card-actions .btn-coral {
    color: #fff;
    background: linear-gradient(110deg, #e97b59, #d95d56);
    border: 0;
    box-shadow: 0 6px 15px rgba(217,93,86,.18);
}
.workspace-shell--visitor-tickets .myticket-card--today {
    border-color: rgba(31,164,122,.48);
    box-shadow: 0 16px 36px rgba(21,112,84,.15);
}
.workspace-shell--visitor-tickets .myticket-empty-state {
    background:
        radial-gradient(circle at 50% 0, rgba(67,207,190,.11), transparent 19rem),
        linear-gradient(145deg, #fff, #f0f9f8);
    border-color: rgba(20,112,126,.15);
    border-radius: 12px;
}
.workspace-shell--visitor-tickets .myticket-empty-state .eyebrow { color: #168f91; }
@media (max-width: 767.98px) {
    .workspace-shell--visitor-tickets .workspace-heading { align-items: flex-start; flex-direction: column; padding: 24px 21px; }
    .workspace-shell--visitor-tickets .myticket-filter-panel { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .workspace-shell--visitor-tickets .myticket-card { animation: none; transition: none; }
    .workspace-shell--visitor-tickets .myticket-card:hover { transform: none; }
}

@keyframes visitor-rise { from { opacity: 0; translate: 0 14px; } to { opacity: 1; translate: 0 0; } }

@media (max-width: 991.98px) {
    .workspace-shell--visitor .booking-summary { position: static; }
    .workspace-shell--visitor .calendar-day { min-height: 142px; }
}
@media (max-width: 767.98px) {
    .workspace-shell--visitor .workspace-heading { align-items: flex-start; flex-direction: column; gap: 14px; padding: 24px 22px; }
    .workspace-shell--visitor .workspace-heading h1 { font-size: 2rem; }
    .workspace-shell--visitor .calendar-shell { overflow-x: auto; padding: 16px; }
    .workspace-shell--visitor .calendar-weekdays,
    .workspace-shell--visitor .calendar-grid { min-width: 720px; }
    .workspace-shell--visitor .calendar-day { min-height: 142px; }
}
@media (prefers-reduced-motion: reduce) {
    .workspace-shell--visitor *,
    .workspace-shell--visitor *::before,
    .workspace-shell--visitor *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Visitor ticket picker */
.workspace-shell--tickets .ticket-overview {
    overflow: hidden;
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 8px;
    box-shadow: 0 12px 26px rgba(8,35,45,.055);
}
.workspace-shell--tickets .ticket-overview-item { background: #fff; }
.workspace-shell--tickets .ticket-overview-item .eyebrow { color: var(--ink-soft); }
.workspace-shell--tickets .ticket-overview-note { color: var(--ink-soft); background: #f1f8f6; }
.workspace-shell--tickets .ticket-overview-note i { color: var(--coral); }
.workspace-shell--tickets .ticket-date-selector {
    gap: 10px;
    margin: 8px 0 26px;
    padding: 10px 12px;
    background: rgba(255,255,255,.9);
    border-color: rgba(19,47,61,.1);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(8,35,45,.055);
}
.workspace-shell--tickets .ticket-date-strip {
    gap: 10px;
    scroll-snap-type: x mandatory;
    scrollbar-color: rgba(19,47,61,.24) transparent;
}
.workspace-shell--tickets .ticket-date-pill {
    position: relative;
    min-width: 144px;
    padding: 13px 14px 16px;
    overflow: hidden;
    background: #fff;
    border-color: rgba(19,47,61,.1);
    border-radius: 7px;
    box-shadow: 0 5px 12px rgba(8,35,45,.035);
    scroll-snap-align: center;
    transition: color .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.workspace-shell--tickets .ticket-date-pill::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, var(--coral), var(--sun), #2f8f96);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .24s ease;
}
.workspace-shell--tickets .ticket-date-pill:hover {
    border-color: rgba(47,143,150,.38);
    box-shadow: 0 10px 18px rgba(8,35,45,.09);
    transform: translateY(-2px);
}
.workspace-shell--tickets .ticket-date-pill.is-active {
    color: #fff;
    background: linear-gradient(145deg, #08232d, #175361);
    border-color: #175361;
    box-shadow: 0 12px 22px rgba(8,35,45,.18);
    transform: translateY(-2px);
}
.workspace-shell--tickets .ticket-date-pill.is-active::after { transform: scaleX(1); }
.workspace-shell--tickets .ticket-date-weekday { color: var(--coral); font: 700 .62rem 'DM Mono', monospace; letter-spacing: .08em; }
.workspace-shell--tickets .ticket-date-pill.is-active .ticket-date-weekday { color: var(--sun); }
.workspace-shell--tickets .ticket-date-main { font-size: 1.55rem; line-height: 1; }
.workspace-shell--tickets .ticket-date-sub { font-size: .68rem; }
.workspace-shell--tickets .ticket-date-quota { margin-top: 5px; color: var(--ink-soft); font-size: .63rem; }
.workspace-shell--tickets .ticket-date-pill.is-active .ticket-date-quota { color: rgba(255,255,255,.72); }
.workspace-shell--tickets .ticket-date-nav {
    width: 38px;
    height: 38px;
    border-radius: 7px;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}
.workspace-shell--tickets .ticket-date-nav:hover { color: #fff; background: var(--deep); transform: translateY(-1px); }
.workspace-shell--tickets .ticket-day-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 13px;
    padding: 0 0 0 12px;
    border-left: 3px solid var(--coral);
}
.workspace-shell--tickets .ticket-day-header h2 { font: 700 1.45rem/1.15 'Playfair Display', serif; }
.workspace-shell--tickets .visitor-ticket-row {
    grid-template-columns: 68px minmax(145px, 1.5fr) minmax(78px, .8fr) minmax(105px, 1fr) minmax(70px, .65fr) 94px;
    gap: 12px;
    min-height: 110px;
    margin-bottom: 10px;
    padding: 14px 16px;
    background: #fff !important;
    border: 1px solid rgba(19,47,61,.1);
    border-left: 3px solid #2f8f96;
    border-radius: 8px;
    box-shadow: 0 8px 20px rgba(8,35,45,.055);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.workspace-shell--tickets .visitor-ticket-row.is-soldout { border-left-color: #c9a85e; opacity: .78; }
.workspace-shell--tickets .visitor-ticket-row:hover {
    border-color: rgba(47,143,150,.35);
    border-left-color: var(--coral);
    box-shadow: 0 15px 28px rgba(8,35,45,.1);
    transform: translateY(-3px);
}
.workspace-shell--tickets .visitor-ticket-thumb {
    width: 68px;
    height: 68px;
    background: #e7f2ef;
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 7px;
    box-shadow: none;
}
.workspace-shell--tickets .visitor-ticket-thumb img { transition: transform .4s ease; }
.workspace-shell--tickets .visitor-ticket-row:hover .visitor-ticket-thumb img { transform: scale(1.06); }
.workspace-shell--tickets .visitor-ticket-main h3 { font-size: 1.05rem; line-height: 1.25; }
.workspace-shell--tickets .visitor-ticket-type,
.workspace-shell--tickets .visitor-ticket-stat-label { color: var(--ink-soft); font-size: .6rem; letter-spacing: .08em; }
.workspace-shell--tickets .visitor-ticket-date { color: var(--ink-soft); font-size: .74rem; }
.workspace-shell--tickets .visitor-ticket-stat-value { font-size: .96rem; line-height: 1.2; }
.workspace-shell--tickets .visitor-ticket-price .visitor-ticket-stat-value { color: var(--coral-dark); font-size: .88rem; }
.workspace-shell--tickets .visitor-ticket-diskon {
    justify-self: center;
    padding: 6px 8px;
    color: #86651e;
    background: #fff3d6;
    border: 1px solid rgba(242,198,109,.4);
    border-radius: 4px;
    font-size: .66rem;
    line-height: 1.2;
}
.workspace-shell--tickets .btn-book-ticket {
    width: 100%;
    padding: .72rem .8rem;
    color: #fff;
    background: var(--coral);
    border-radius: 5px;
    box-shadow: 0 7px 14px rgba(229,109,79,.2);
    transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.workspace-shell--tickets .btn-book-ticket:hover:not(:disabled) { color: #fff; background: var(--coral-dark); box-shadow: 0 10px 18px rgba(229,109,79,.28); transform: translateY(-2px); }
.workspace-shell--tickets .btn-book-ticket:disabled { color: var(--ink-soft); background: #e7ecea; box-shadow: none; }
.workspace-shell--tickets .ticket-day-panel.is-visible .visitor-ticket-row { animation: ticket-arrive .45s cubic-bezier(.2,.75,.25,1) both; }
.workspace-shell--tickets .ticket-day-panel.is-visible .visitor-ticket-row:nth-child(3) { animation-delay: .06s; }
.workspace-shell--tickets .ticket-day-panel.is-visible .visitor-ticket-row:nth-child(4) { animation-delay: .12s; }
.workspace-shell--tickets .ticket-day-panel.is-visible .visitor-ticket-row:nth-child(5) { animation-delay: .18s; }

@keyframes ticket-arrive { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }

@media (max-width: 991.98px) {
    .workspace-shell--tickets .visitor-ticket-row { grid-template-columns: 72px minmax(0, 1fr); }
    .workspace-shell--tickets .visitor-ticket-thumb { width: 66px; height: 66px; }
    .workspace-shell--tickets .visitor-ticket-quota,
    .workspace-shell--tickets .visitor-ticket-price,
    .workspace-shell--tickets .visitor-ticket-diskon,
    .workspace-shell--tickets .visitor-ticket-action { justify-self: start; }
    .workspace-shell--tickets .visitor-ticket-action { width: 100%; }
}
@media (max-width: 575.98px) {
    .workspace-shell--tickets .ticket-date-selector { gap: 6px; padding: 8px; }
    .workspace-shell--tickets .ticket-date-pill { min-width: 120px; padding: 11px 10px 14px; }
    .workspace-shell--tickets .ticket-date-nav { width: 34px; height: 34px; }
    .workspace-shell--tickets .visitor-ticket-row { padding: 13px; }
}
@media (prefers-reduced-motion: reduce) {
    .workspace-shell--tickets *,
    .workspace-shell--tickets *::before,
    .workspace-shell--tickets *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.workspace-shell--tickets .ticket-overview,
.workspace-shell--tickets .ticket-date-selector,
.workspace-shell--tickets .ticket-day-list {
    width: 100%;
    max-width: 1720px;
    margin-right: auto;
    margin-left: auto;
}
.workspace-shell--tickets .ticket-overview {
    grid-template-columns: minmax(210px, .8fr) minmax(210px, .8fr) minmax(300px, 1.4fr);
    gap: 1px;
    background: var(--line);
    border-color: rgba(19,47,61,.1);
    box-shadow: 0 16px 34px rgba(8,35,45,.07);
}
.workspace-shell--tickets .ticket-overview-item {
    position: relative;
    min-width: 0;
    padding: 24px 26px;
    background: #fff;
    transition: background .22s ease;
}
.workspace-shell--tickets .ticket-overview-item:hover { background: #fbfdfc; }
.workspace-shell--tickets .ticket-overview-item__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.workspace-shell--tickets .ticket-overview-item .eyebrow { margin: 0; font-size: .64rem; letter-spacing: .1em; }
.workspace-shell--tickets .ticket-overview-item strong { margin-top: 12px; color: var(--ink); font-size: 2.65rem; line-height: 1; }
.workspace-shell--tickets .ticket-overview-item > span:last-child { margin-top: 9px; color: var(--ink-soft); font-size: .76rem; }
.workspace-shell--tickets .ticket-overview-icon {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border-radius: 7px;
    font-size: 1rem;
    transition: transform .22s ease;
}
.workspace-shell--tickets .ticket-overview-item:hover .ticket-overview-icon { transform: translateY(-2px) rotate(-4deg); }
.workspace-shell--tickets .ticket-overview-icon--sea { color: #216f73; background: #e1f2ef; }
.workspace-shell--tickets .ticket-overview-icon--coral { color: #a64b37; background: #fce6db; }
.workspace-shell--tickets .ticket-overview-note {
    gap: 14px;
    padding: 22px 26px;
    color: var(--ink-soft);
    background: linear-gradient(125deg, #eff8f6, #f8fbf8);
    font-size: .84rem;
    line-height: 1.6;
}
.workspace-shell--tickets .ticket-overview-note i { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; color: #fff; background: #2f8f96; border-radius: 7px; font-size: 1rem; }
.workspace-shell--tickets .ticket-date-selector { max-width: 1720px; }
.workspace-shell--tickets .ticket-day-list { gap: 18px; }
.workspace-shell--tickets .ticket-day-header { margin-bottom: 16px; }
.workspace-shell--tickets .ticket-day-header h2 { font-size: 1.65rem; }
.workspace-shell--tickets .visitor-ticket-row {
    grid-template-columns: minmax(230px, 1.55fr) minmax(130px, .72fr) minmax(155px, .9fr) auto minmax(116px, .6fr);
    gap: 18px;
    min-height: 132px;
    margin-bottom: 12px;
    padding: 18px 22px;
    border-left-width: 4px;
    border-radius: 10px;
    box-shadow: 0 10px 24px rgba(8,35,45,.06);
}
.workspace-shell--tickets .visitor-ticket-product { display: flex; align-items: center; gap: 16px; min-width: 0; }
.workspace-shell--tickets .visitor-ticket-thumb { width: 76px; height: 88px; flex: 0 0 76px; border-radius: 6px; }
.workspace-shell--tickets .visitor-ticket-thumb img { object-fit: cover; }
.workspace-shell--tickets .visitor-ticket-main h3 { font-size: 1.22rem; }
.workspace-shell--tickets .visitor-ticket-date { display: flex; align-items: center; gap: 6px; }
.workspace-shell--tickets .visitor-ticket-date i { color: #2f8f96; }
.workspace-shell--tickets .visitor-ticket-quota,
.workspace-shell--tickets .visitor-ticket-price {
    min-width: 0;
    padding-left: 18px;
    border-left: 1px solid rgba(19,47,61,.11);
}
.workspace-shell--tickets .visitor-ticket-stat-value { font-size: 1.08rem; }
.workspace-shell--tickets .visitor-ticket-diskon { white-space: nowrap; }
.workspace-shell--tickets .btn-book-ticket { min-height: 48px; font-size: .86rem; }

@media (max-width: 991.98px) {
    .workspace-shell--tickets .visitor-ticket-row { grid-template-columns: minmax(0, 1fr) minmax(94px, auto); }
    .workspace-shell--tickets .visitor-ticket-product { grid-column: 1 / -1; }
    .workspace-shell--tickets .visitor-ticket-quota,
    .workspace-shell--tickets .visitor-ticket-price { padding-left: 0; border-left: 0; }
    .workspace-shell--tickets .visitor-ticket-price { grid-column: 1; }
    .workspace-shell--tickets .visitor-ticket-diskon { grid-column: 1; justify-self: start; }
    .workspace-shell--tickets .visitor-ticket-action { grid-column: 2; grid-row: 3 / span 2; align-self: end; }
}
@media (max-width: 575.98px) {
    .workspace-shell--tickets .ticket-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .workspace-shell--tickets .ticket-overview-item { padding: 18px; }
    .workspace-shell--tickets .ticket-overview-item strong { font-size: 2.2rem; }
    .workspace-shell--tickets .ticket-overview-note { grid-column: 1 / -1; padding: 18px; }
    .workspace-shell--tickets .visitor-ticket-row { gap: 10px 14px; padding: 14px; }
    .workspace-shell--tickets .visitor-ticket-product { gap: 12px; }
    .workspace-shell--tickets .visitor-ticket-thumb { width: 62px; height: 72px; flex-basis: 62px; }
    .workspace-shell--tickets .visitor-ticket-main h3 { font-size: 1rem; }
    .workspace-shell--tickets .visitor-ticket-stat-value { font-size: .94rem; }
    .workspace-shell--tickets .visitor-ticket-action { grid-row: 3 / span 2; }
    .workspace-shell--tickets .btn-book-ticket { min-height: 42px; padding: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
    .workspace-shell--tickets .ticket-day-panel.is-visible .visitor-ticket-row { animation: none !important; }
}

.workspace-shell--tickets .visitor-ticket-hero {
    min-height: 220px;
    padding-right: clamp(210px, 24vw, 330px);
    background: radial-gradient(ellipse at 78% 10%, rgba(67,221,192,.2), transparent 35%), repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px), linear-gradient(118deg,#082735,#0d4b58 66%,#107b79);
    border: 1px solid rgba(132,244,222,.18);
    border-radius: 14px;
    box-shadow: 0 22px 48px rgba(8,35,45,.16);
    isolation: isolate;
}
.workspace-shell--tickets .visitor-ticket-hero::after { position: absolute; z-index: -1; right: 21%; bottom: -155px; width: 350px; height: 210px; content: ''; background: rgba(93,235,203,.13); border-radius: 50%; filter: blur(48px); }
.workspace-shell--tickets .visitor-ticket-hero__text { max-width: 620px; }
.workspace-shell--tickets .visitor-ticket-hero .ws-page-hero__kicker { color: #a2f1df; }
.workspace-shell--tickets .visitor-ticket-hero .ws-page-hero__title { font-size: clamp(2.25rem,4vw,3.2rem); }
.workspace-shell--tickets .visitor-ticket-hero .ws-page-hero__desc { color: rgba(236,255,250,.76); }
.workspace-shell--tickets .visitor-ticket-hero .ws-status-pill { position: absolute; top: 20px; right: 20px; z-index: 2; color: #c8ffef; background: rgba(9,25,38,.28); border-color: rgba(176,255,238,.24); backdrop-filter: blur(8px); }
.workspace-shell--tickets .visitor-ticket-hero__live { width: 7px; height: 7px; background: #68eeb6; border-radius: 50%; box-shadow: 0 0 0 4px rgba(104,238,182,.13), 0 0 14px rgba(104,238,182,.7); }
.visitor-ticket-voyage { position: absolute; top: 50%; right: 7%; z-index: 1; width: clamp(220px,27vw,310px); transform: translateY(-48%); }
.visitor-ticket-voyage > svg { display: block; width: 100%; overflow: visible; filter: drop-shadow(0 12px 18px rgba(2,19,30,.25)); }
.visitor-ticket-voyage__orbit { position: absolute; top: 50%; left: 50%; width: 108%; height: 78%; border: 1px solid rgba(150,246,226,.2); border-radius: 50%; }
.visitor-ticket-voyage__orbit--one { transform: translate(-50%,-50%) rotate(-19deg); animation: visitor-voyage-orbit 17s linear infinite; }
.visitor-ticket-voyage__orbit--two { width: 92%; height: 92%; border-color: rgba(242,198,109,.15); transform: translate(-50%,-50%) rotate(25deg); animation: visitor-voyage-orbit 23s linear infinite reverse; }
.visitor-ticket-voyage__pass { transform-origin: 145px 95px; animation: visitor-voyage-ticket 5s ease-in-out infinite; }
.visitor-ticket-voyage__pass > path:first-child { fill: rgba(164,246,224,.14); stroke: #a4f6e0; stroke-width: 2; }
.visitor-ticket-voyage__perforation { fill: none; stroke: rgba(197,255,242,.7); stroke-width: 1.5; stroke-dasharray: 3 4; }
.visitor-ticket-voyage__pass-lines { fill: none; stroke: rgba(173,242,225,.72); stroke-linecap: round; stroke-width: 2; }
.visitor-ticket-voyage__pass circle { fill: rgba(255,207,137,.14); stroke: #ffcf89; stroke-width: 1.5; }
.visitor-ticket-voyage__stamp { fill: none; stroke: #ffcf89; stroke-linecap: round; stroke-width: 2; }
.visitor-ticket-voyage__ship { transform-origin: 160px 105px; animation: visitor-voyage-sail 3.4s ease-in-out infinite; }
.visitor-ticket-voyage__hull { fill: #f3a66c; stroke: #ffe0ae; stroke-linejoin: round; stroke-width: 1.5; }
.visitor-ticket-voyage__deck { fill: #e4fff4; stroke: #b9f5e5; stroke-linejoin: round; stroke-width: 1.6; }
.visitor-ticket-voyage__chimney { fill: #e56d4f; stroke: #ffd19a; stroke-width: 1.3; }
.visitor-ticket-voyage__window { fill: none; stroke: #13847f; stroke-linecap: round; stroke-width: 2; }
.visitor-ticket-voyage__wheel { fill: #164d58; stroke: #a4f6e0; stroke-width: 2; }
.visitor-ticket-voyage__steam { fill: #dcfff5; opacity: .75; transform-box: fill-box; transform-origin: center bottom; animation: visitor-voyage-steam 2.2s ease-out infinite; }
.visitor-ticket-voyage__wake { fill: none; stroke: #6be0ca; stroke-linecap: round; stroke-width: 2; stroke-dasharray: 5 6; animation: visitor-voyage-wake 2s linear infinite; }
.visitor-ticket-voyage__spark { fill: #ffd27e; filter: drop-shadow(0 0 5px rgba(255,210,126,.85)); transform-origin: 255px 60px; animation: visitor-voyage-spark 2.8s ease-in-out infinite; }
.visitor-ticket-voyage__label { position: absolute; right: 0; bottom: -4px; color: rgba(184,241,223,.62); font: 600 .48rem 'DM Mono',monospace; letter-spacing: .14em; }
.workspace-shell--tickets .ticket-overview { border-radius: 13px; }
.workspace-shell--tickets .ticket-overview-item,
.workspace-shell--tickets .ticket-overview-note { min-height: 136px; }
.workspace-shell--tickets .ticket-overview-item { position: relative; transition: background .2s ease; }
.workspace-shell--tickets .ticket-overview-item:hover { background: linear-gradient(145deg,#fff,#f1faf7); }
.workspace-shell--tickets .ticket-date-selector { border: 1px solid rgba(19,47,61,.08); }
.workspace-shell--tickets .ticket-day-header { padding-bottom: 10px; border-bottom: 1px solid rgba(19,47,61,.1); }
.workspace-shell--tickets .visitor-ticket-row {
    position: relative;
    overflow: hidden;
    background: linear-gradient(110deg,#fff 0%,#fff 68%,#f5fbf9 100%) !important;
    border-color: rgba(19,47,61,.1);
    border-left: 4px solid #2f8f96;
    border-radius: 12px;
}
.workspace-shell--tickets .visitor-ticket-row::after { position: absolute; top: 12px; right: -23px; width: 78px; height: 20px; content: ''; background: linear-gradient(90deg,#55c9b1,#a0e7cb); opacity: .78; transform: rotate(38deg); }
.workspace-shell--tickets .visitor-ticket-row.is-soldout { background: linear-gradient(110deg,#fffdf8,#fff7e9) !important; border-left-color: #d6ae5a; }
.workspace-shell--tickets .visitor-ticket-row.is-soldout::after { background: linear-gradient(90deg,#d7b969,#f0dda1); }
.workspace-shell--tickets .visitor-ticket-thumb { overflow: hidden; background: linear-gradient(145deg,#e3f8f1,#cdece5); border: 1px solid rgba(47,143,150,.16); box-shadow: 0 7px 16px rgba(8,35,45,.09); }
.workspace-shell--tickets .visitor-ticket-thumb-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: #177f79; background: radial-gradient(circle at 70% 25%,rgba(255,255,255,.9),transparent 35%),linear-gradient(145deg,#ddf7ee,#c8ece4); }
.workspace-shell--tickets .visitor-ticket-thumb-placeholder i { font-size: 2rem; filter: drop-shadow(0 4px 7px rgba(23,127,121,.2)); }
.workspace-shell--tickets .visitor-ticket-main h3 { color: #123b46; }
.workspace-shell--tickets .visitor-ticket-date { display: inline-flex; margin-top: 4px; padding: 5px 8px; background: #eff8f5; border: 1px solid #deeee8; border-radius: 99px; }
.workspace-shell--tickets .visitor-ticket-quota,
.workspace-shell--tickets .visitor-ticket-price { position: relative; z-index: 1; }
.workspace-shell--tickets .visitor-ticket-diskon { border-radius: 99px; font-weight: 800; }
.workspace-shell--tickets .btn-book-ticket { border-radius: 8px; background: linear-gradient(135deg,#e87658,#cc5945); }
.workspace-shell--tickets .btn-book-ticket:disabled { color: #5e6e70; background: #e8eeeb; }
@keyframes visitor-voyage-orbit { to { rotate: 360deg; } }
@keyframes visitor-voyage-ticket { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(1deg); } }
@keyframes visitor-voyage-sail { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-3px); } }
@keyframes visitor-voyage-steam { 0% { opacity: .1; transform: translateY(7px) scale(.65); } 35% { opacity: .75; } 100% { opacity: 0; transform: translateY(-15px) scale(1.35); } }
@keyframes visitor-voyage-wake { to { stroke-dashoffset: -22; } }
@keyframes visitor-voyage-spark { 0%,100% { opacity: .65; transform: scale(.8) rotate(0); } 50% { opacity: 1; transform: scale(1.14) rotate(20deg); } }
@media (max-width: 900px) {
    .workspace-shell--tickets .visitor-ticket-hero { padding-right: 230px; }
    .visitor-ticket-voyage { right: 3%; width: 230px; opacity: .8; }
}
@media (max-width: 600px) {
    .workspace-shell--tickets .visitor-ticket-hero { min-height: 205px; padding: 25px 20px; }
    .workspace-shell--tickets .visitor-ticket-hero__text { max-width: 100%; padding-right: 12px; }
    .workspace-shell--tickets .visitor-ticket-hero .ws-page-hero__title { max-width: 65%; font-size: 2rem; }
    .workspace-shell--tickets .visitor-ticket-hero .ws-status-pill { top: auto; right: 13px; bottom: 12px; padding: 6px 8px; }
    .visitor-ticket-voyage { top: auto; right: -13px; bottom: -37px; width: 155px; opacity: .24; transform: none; }
    .visitor-ticket-voyage__label { display: none; }
    .workspace-shell--tickets .visitor-ticket-row::after { top: 5px; right: -34px; width: 80px; }
    .workspace-shell--tickets .visitor-ticket-date { padding: 4px 7px; }
}
@media (prefers-reduced-motion: reduce) {
    .visitor-ticket-voyage *,
    .visitor-ticket-voyage *::before,
    .visitor-ticket-voyage *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Booking workspace */
.workspace-shell--booking { background: radial-gradient(ellipse at 92% 3%, rgba(51,164,154,.1), transparent 30%), linear-gradient(180deg,#f8faf8 0%,var(--mist) 54%,#edf4f2 100%); }
.workspace-shell--booking .booking-hero {
    position: relative;
    display: flex;
    min-height: 250px;
    align-items: center;
    overflow: hidden;
    margin-bottom: 22px;
    padding: clamp(27px,4vw,42px);
    color: #fff;
    background: radial-gradient(ellipse at 78% 14%,rgba(67,221,192,.2),transparent 35%),repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px),linear-gradient(118deg,#092735,#0d4b58 66%,#107b79);
    border: 1px solid rgba(132,244,222,.2);
    border-radius: 14px;
    box-shadow: 0 22px 48px rgba(8,35,45,.16);
    isolation: isolate;
}
.workspace-shell--booking .booking-hero::before { position: absolute; z-index: -1; inset: 0; content: ''; opacity: .15; background-image: linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(90deg,#000,transparent 85%); }
.workspace-shell--booking .booking-hero__copy { position: relative; z-index: 2; max-width: 51%; }
.workspace-shell--booking .booking-hero__eyebrow { display: inline-flex; align-items: center; gap: 8px; color: #9af0dc; font: 700 .62rem 'DM Mono',monospace; letter-spacing: .11em; }
.workspace-shell--booking .booking-hero__eyebrow i { color: #ffd27e; font-size: .9rem; }
.workspace-shell--booking .booking-hero h1 { margin: 14px 0 8px; color: #fff; font: 700 clamp(2rem,3.6vw,3rem)/1.08 'Playfair Display',serif; letter-spacing: -.04em; }
.workspace-shell--booking .booking-hero__copy p { max-width: 420px; margin: 0; color: rgba(236,255,250,.76); font-size: .84rem; line-height: 1.7; }
.workspace-shell--booking .booking-hero__badge { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; padding: 7px 10px; color: #d6fff2; background: rgba(154,240,220,.1); border: 1px solid rgba(154,240,220,.2); border-radius: 7px; font-size: .65rem; font-weight: 700; }
.workspace-shell--booking .booking-hero__badge i { color: #ffd27e; }
.workspace-shell--booking .booking-hero__status { position: absolute; top: 18px; right: 20px; z-index: 3; display: inline-flex; align-items: center; gap: 8px; padding: 8px 10px; color: #d6fff2; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 99px; font: 700 .56rem 'DM Mono',monospace; letter-spacing: .07em; }
.workspace-shell--booking .booking-hero__status span { width: 7px; height: 7px; background: #68eeb6; border-radius: 50%; box-shadow: 0 0 0 4px rgba(104,238,182,.13),0 0 14px rgba(104,238,182,.6); }
.booking-calendar-scene { position: absolute; top: 50%; right: 3%; display: grid; width: clamp(245px,34vw,375px); aspect-ratio: 18/11; place-items: center; transform: translateY(-48%); }
.booking-calendar-scene > svg { position: relative; z-index: 1; display: block; width: 100%; overflow: visible; filter: drop-shadow(0 12px 18px rgba(2,19,30,.24)); }
.booking-calendar-scene__orbit { position: absolute; top: 50%; left: 50%; width: 110%; height: 76%; border: 1px solid rgba(150,246,226,.2); border-radius: 50%; }
.booking-calendar-scene__orbit--one { transform: translate(-50%,-50%) rotate(-18deg); animation: booking-calendar-orbit 18s linear infinite; }
.booking-calendar-scene__orbit--two { width: 93%; height: 96%; border-color: rgba(242,198,109,.16); transform: translate(-50%,-50%) rotate(27deg); animation: booking-calendar-orbit 24s linear infinite reverse; }
.booking-calendar-scene__signal { fill: none; stroke: rgba(138,239,221,.58); stroke-linecap: round; stroke-width: 2; stroke-dasharray: 6 6; animation: booking-calendar-signal 2.2s linear infinite; }
.booking-calendar-scene__calendar > rect { fill: rgba(224,255,245,.97); stroke: #a3f3de; stroke-width: 2; }
.booking-calendar-scene__calendar-top { fill: #167f7b; }
.booking-calendar-scene__rings { fill: none; stroke: #ffcf89; stroke-linecap: round; stroke-width: 5; }
.booking-calendar-scene__grid { fill: none; stroke: #72aaa3; stroke-linecap: round; stroke-width: 3; }
.booking-calendar-scene__marked-day { fill: #f17d5d; stroke: #fff0cc; stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: booking-calendar-mark 6s ease-in-out infinite; }
.booking-calendar-scene__check { fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; stroke-dasharray: 20; stroke-dashoffset: 20; animation: booking-calendar-check 6s ease-in-out infinite; }
.booking-calendar-scene__calendar { transform-origin: 155px 105px; animation: booking-calendar-transform 6s ease-in-out infinite; }
.booking-calendar-scene__disk { opacity: 0; transform-box: view-box; transform-origin: center; animation: booking-disk-appear 6s ease-in-out infinite; }
.booking-calendar-scene__disk-body { fill: #a4f6e0; stroke: #d3fff4; stroke-width: 2; }
.booking-calendar-scene__disk-label { fill: #177d7b; stroke: #c8fff1; stroke-width: 2; }
.booking-calendar-scene__disk-slot { fill: none; stroke: #ffd27e; stroke-linecap: round; stroke-width: 4; }
.booking-calendar-scene__disk-window { fill: #effff9; stroke: #56bba8; stroke-width: 2; }
.booking-calendar-scene__disk-mark { fill: none; stroke: #e56d4f; stroke-linecap: round; stroke-linejoin: round; stroke-width: 4; stroke-dasharray: 35; stroke-dashoffset: 35; animation: booking-disk-check 6s ease-in-out infinite; }
.booking-calendar-scene__spark { fill: #ffd27e; filter: drop-shadow(0 0 5px rgba(255,210,126,.7)); animation: booking-calendar-spark 2.4s ease-in-out infinite alternate; }
.booking-calendar-scene__spark--two { fill: #a2f1df; animation-delay: .8s; }
.booking-calendar-scene__caption { position: absolute; right: 1%; bottom: 1px; color: rgba(184,241,223,.62); font: 600 .47rem 'DM Mono',monospace; letter-spacing: .13em; }
.workspace-shell--booking .booking-mode-banner { border-color: rgba(132,244,222,.2); border-radius: 11px; }
.workspace-shell--booking .booking-mode-banner__icon { border-radius: 12px; box-shadow: 0 8px 19px rgba(242,198,109,.18); }
.workspace-shell--booking .booking-mode-banner__index { display: inline-flex; align-items: center; gap: 8px; }
.workspace-shell--booking .booking-mode-banner__index i { color: #ffd27e; }
.workspace-shell--booking .booking-fields { background: linear-gradient(145deg,rgba(255,255,255,.97),rgba(244,250,248,.96)); border-color: rgba(47,143,150,.14); border-radius: 11px; }
.workspace-shell--booking .booking-fields__eyebrow { display: inline-flex; align-items: center; gap: 5px; }
.workspace-shell--booking .booking-fields__eyebrow > i:first-child { color: #2f8f96; }
.workspace-shell--booking .booking-fields__heading h2 { display: flex; align-items: center; gap: 9px; }
.workspace-shell--booking .booking-fields__heading h2 i { color: #2f8f96; font-size: 1.2rem; }
.workspace-shell--booking .booking-field { border-color: rgba(47,143,150,.14); border-radius: 10px; }
.workspace-shell--booking .booking-field .form-control,
.workspace-shell--booking .booking-field .form-select { border-radius: 8px; }
.workspace-shell--booking .booking-summary { border-radius: 11px; }
.workspace-shell--booking .booking-summary__line { gap: 8px; }
.workspace-shell--booking .booking-summary__line span { display: inline-flex; align-items: center; gap: 7px; }
.workspace-shell--booking .booking-summary__line span i { color: #7ce0c5; font-size: .8rem; }
.workspace-shell--booking .booking-summary__total span { display: inline-flex; align-items: center; gap: 7px; }
.workspace-shell--booking .booking-summary__total span i { color: #ffd27e; font-size: .85rem; }
.workspace-shell--booking .booking-summary .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 8px; }
@keyframes booking-calendar-orbit { to { rotate: 360deg; } }
@keyframes booking-calendar-signal { to { stroke-dashoffset: -24; } }
@keyframes booking-calendar-mark { 0%,100% { transform: scale(.75); } 20%,38% { transform: scale(1.16); } 55% { transform: scale(1); } }
@keyframes booking-calendar-check { 0%,9% { stroke-dashoffset: 20; } 22%,100% { stroke-dashoffset: 0; } }
@keyframes booking-calendar-transform { 0%,32% { opacity: 1; transform: translate(0,0) rotate(0) scale(1); } 48% { opacity: .7; transform: translate(28px,-8px) rotate(8deg) scale(.78); } 57%,100% { opacity: 0; transform: translate(42px,-6px) rotate(10deg) scale(.55); } }
@keyframes booking-disk-appear { 0%,40% { opacity: 0; transform: translate(-20px,8px) scale(.62) rotate(-10deg); } 57%,75% { opacity: 1; transform: translate(0,0) scale(1) rotate(0); } 90%,100% { opacity: 1; transform: translate(0,0) scale(1) rotate(0); } }
@keyframes booking-disk-check { 0%,58% { stroke-dashoffset: 35; } 74%,100% { stroke-dashoffset: 0; } }
@keyframes booking-calendar-spark { to { opacity: .45; transform: scale(.7); } }
.workspace-shell--booking .booking-form-shell {
    position: relative;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.workspace-shell--booking .booking-form-shell > .alert { border-radius: 7px; }
.workspace-shell--booking .booking-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(290px, .72fr);
    align-items: start;
    gap: 18px;
}
.workspace-shell--booking .booking-mode-banner {
    position: relative;
    display: flex;
    grid-column: 1 / -1;
    align-items: center;
    gap: 16px;
    min-height: 104px;
    padding: 20px 24px;
    overflow: hidden;
    color: #fff;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px), linear-gradient(115deg, #08232d, #104653 72%, #216d72);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 8px;
    box-shadow: 0 14px 28px rgba(8,35,45,.12);
}
.workspace-shell--booking .booking-mode-banner::after {
    position: absolute;
    right: -36px;
    bottom: -68px;
    width: 180px;
    height: 180px;
    content: '';
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 50%;
    box-shadow: 0 0 0 22px rgba(255,255,255,.025), 0 0 0 45px rgba(255,255,255,.02);
    pointer-events: none;
}
.workspace-shell--booking .booking-mode-banner__icon {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    color: var(--ink);
    background: var(--sun);
    border-radius: 8px;
    font-size: 1.25rem;
    animation: booking-compass 5s ease-in-out infinite;
}
.workspace-shell--booking .booking-mode-banner__copy { position: relative; z-index: 1; }
.workspace-shell--booking .booking-mode-banner .eyebrow { margin: 0 0 4px; color: var(--sun); font-size: .63rem; }
.workspace-shell--booking .booking-mode-banner h3 { margin: 0; color: #fff; font: 700 1.45rem/1.15 'Playfair Display', serif; }
.workspace-shell--booking .booking-mode-banner__index {
    position: relative;
    z-index: 1;
    margin-left: auto;
    color: rgba(255,255,255,.58);
    font: 500 .62rem 'DM Mono', monospace;
    letter-spacing: .08em;
}
.workspace-shell--booking .booking-fields {
    min-width: 0;
    padding: 22px;
    background: rgba(255,255,255,.76);
    border: 1px solid rgba(19,47,61,.1);
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(8,35,45,.05);
}
.workspace-shell--booking .booking-fields__heading { margin-bottom: 18px; }
.workspace-shell--booking .booking-fields__eyebrow { color: var(--coral); font: 700 .62rem 'DM Mono', monospace; letter-spacing: .12em; }
.workspace-shell--booking .booking-fields__eyebrow i { color: #2f8f96; }
.workspace-shell--booking .booking-fields__heading h2 { margin: 5px 0 0; color: var(--ink); font: 700 1.55rem/1.1 'Playfair Display', serif; }
.workspace-shell--booking .booking-fields-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.workspace-shell--booking .booking-field {
    position: relative;
    min-width: 0;
    padding: 15px;
    background: linear-gradient(145deg, #fff, #f7faf9);
    border: 1px solid rgba(19,47,61,.11);
    border-radius: 7px;
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, translate .2s ease;
    animation: booking-field-arrive .45s ease both;
}
.workspace-shell--booking .booking-field:nth-child(2) { animation-delay: .06s; }
.workspace-shell--booking .booking-field:nth-child(3) { animation-delay: .12s; }
.workspace-shell--booking .booking-field:nth-child(4) { animation-delay: .18s; }
.workspace-shell--booking .booking-field:nth-child(5) { animation-delay: .24s; }
.workspace-shell--booking .booking-field:hover { background: #fff; border-color: rgba(47,143,150,.35); box-shadow: 0 9px 18px rgba(8,35,45,.055); translate: 0 -2px; }
.workspace-shell--booking .booking-field--program { grid-column: 1 / -1; }
.workspace-shell--booking .booking-field .form-label {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 9px;
    color: var(--ink-soft);
    font: 700 .66rem 'DM Mono', monospace;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.workspace-shell--booking .booking-field .form-label i { color: #2f8f96; font-size: .85rem; }
.workspace-shell--booking .booking-field .form-control,
.workspace-shell--booking .booking-field .form-select {
    min-height: 48px;
    padding: .72rem .8rem;
    color: var(--ink);
    background-color: #fff;
    border-color: rgba(19,47,61,.13);
    border-radius: 5px;
    font-size: .82rem;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.workspace-shell--booking .booking-field .form-control:focus,
.workspace-shell--booking .booking-field .form-select:focus {
    background-color: #fff;
    border-color: #2f8f96;
    box-shadow: 0 0 0 3px rgba(47,143,150,.12);
}
.workspace-shell--booking .booking-field .form-control:disabled,
.workspace-shell--booking .booking-field .form-select:disabled { color: var(--ink-soft); background-color: #edf2f0; }
.workspace-shell--booking .booking-field--date-locked .form-control:disabled { color: #176f67; background: linear-gradient(110deg,#e9f7f2,#f2faf7); border-color: rgba(47,143,150,.28); cursor: not-allowed; opacity: 1; }
.workspace-shell--booking .booking-date-lock-hint { display: flex; align-items: center; gap: 6px; margin-top: 9px; color: #277f75; font-size: .68rem; font-weight: 700; }
.workspace-shell--booking .booking-date-lock-hint i { color: #d28d2d; }
.workspace-shell--booking .booking-quota-hint { display: block; min-height: 1.1rem; margin-top: 8px; color: #32766f; font-size: .69rem; font-weight: 700; }
.workspace-shell--booking .booking-summary-column { min-width: 0; }
.workspace-shell--booking .booking-summary {
    top: 94px;
    padding: 22px;
    overflow: hidden;
    color: #fff;
    background: radial-gradient(circle at 100% 0%, rgba(47,143,150,.23), transparent 38%), linear-gradient(155deg, #08232d 0%, #0d3542 72%, #124953 100%);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px;
    box-shadow: 0 18px 36px rgba(8,35,45,.17);
}
.workspace-shell--booking .booking-summary::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, var(--coral), var(--sun), #2f8f96);
}
.workspace-shell--booking .booking-summary__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.workspace-shell--booking .booking-summary .eyebrow { margin: 0; color: var(--sun); }
.workspace-shell--booking .booking-summary__mark { color: rgba(255,255,255,.72); font-size: 1.05rem; animation: booking-compass 5s ease-in-out infinite reverse; }
.workspace-shell--booking .booking-summary h3 { min-height: 54px; margin: 14px 0 20px; color: #fff; font: 700 1.4rem/1.18 'Playfair Display', serif; }
.workspace-shell--booking .booking-summary__line { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; color: rgba(255,255,255,.68); border-top: 1px solid rgba(255,255,255,.12); font-size: .76rem; }
.workspace-shell--booking .booking-summary__line strong { color: #fff; font-size: .82rem; text-align: right; }
.workspace-shell--booking .booking-summary__total { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 12px 0 18px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.2); }
.workspace-shell--booking .booking-summary__total span { color: rgba(255,255,255,.76); font-size: .8rem; font-weight: 700; }
.workspace-shell--booking .booking-summary__total strong { color: var(--sun); font-size: 1.5rem; line-height: 1; text-align: right; }
.workspace-shell--booking .booking-summary hr { display: none; }
.workspace-shell--booking .booking-summary .btn { min-height: 48px; border-radius: 5px; box-shadow: 0 9px 18px rgba(229,109,79,.24); transition: transform .2s ease, box-shadow .2s ease; }
.workspace-shell--booking .booking-summary .btn:hover { transform: translateY(-2px); box-shadow: 0 13px 22px rgba(229,109,79,.32); }
@keyframes booking-field-arrive { from { opacity: 0; translate: 0 10px; } to { opacity: 1; translate: 0 0; } }
@keyframes booking-compass { 50% { transform: rotate(8deg) translateY(-2px); } }

@media (max-width: 991.98px) {
    .workspace-shell--booking .booking-form-layout { grid-template-columns: minmax(0, 1fr); }
    .workspace-shell--booking .booking-summary { position: static; }
    .workspace-shell--booking .booking-summary h3 { min-height: 0; }
}
@media (max-width: 575.98px) {
    .workspace-shell--booking .booking-hero { min-height: 252px; align-items: flex-start; padding: 23px 19px; }
    .workspace-shell--booking .booking-hero__copy { max-width: 100%; }
    .workspace-shell--booking .booking-hero h1 { max-width: 72%; font-size: 2rem; }
    .workspace-shell--booking .booking-hero__copy p { max-width: 68%; font-size: .76rem; }
    .workspace-shell--booking .booking-hero__badge { max-width: 70%; margin-top: 12px; padding: 7px 8px; font-size: .57rem; }
    .workspace-shell--booking .booking-hero__status { top: auto; right: 12px; bottom: 11px; padding: 7px 8px; font-size: .5rem; }
    .booking-calendar-scene { top: auto; right: -35px; bottom: -39px; width: 185px; opacity: .58; transform: none; }
    .booking-calendar-scene__caption { display: none; }
    .workspace-shell--booking .booking-mode-banner { min-height: 88px; gap: 12px; padding: 16px; }
    .workspace-shell--booking .booking-mode-banner__icon { width: 40px; height: 40px; flex-basis: 40px; font-size: 1rem; }
    .workspace-shell--booking .booking-mode-banner h3 { font-size: 1.2rem; }
    .workspace-shell--booking .booking-mode-banner__index { display: none; }
    .workspace-shell--booking .booking-fields { padding: 16px; }
    .workspace-shell--booking .booking-fields-grid { grid-template-columns: minmax(0, 1fr); }
    .workspace-shell--booking .booking-field--program { grid-column: auto; }
    .workspace-shell--booking .booking-summary { padding: 19px; }
}
@media (prefers-reduced-motion: reduce) {
    .booking-calendar-scene *,
    .booking-calendar-scene *::before,
    .booking-calendar-scene *::after { animation: none !important; }
    .booking-calendar-scene__calendar { opacity: 0 !important; }
    .booking-calendar-scene__disk { opacity: 1 !important; transform: none !important; }
    .booking-calendar-scene__disk-mark { stroke-dashoffset: 0; }
    .workspace-shell--booking *,
    .workspace-shell--booking *::before,
    .workspace-shell--booking *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Participant details */
.workspace-shell--participants .ws-steps {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px minmax(0, 1fr) 52px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    margin: 0 0 24px;
    padding: 17px 22px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(19,47,61,.1);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(8,35,45,.05);
}
.workspace-shell--participants .ws-step { display: flex; align-items: center; gap: 10px; min-width: 0; }
.workspace-shell--participants .ws-step__num {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: var(--ink-soft);
    background: #edf2f0;
    border: 1px solid rgba(19,47,61,.1);
    border-radius: 50%;
    font: 700 .7rem 'DM Mono', monospace;
    transition: color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.workspace-shell--participants .ws-step__label { min-width: 0; color: var(--ink-soft); font-size: .76rem; font-weight: 800; line-height: 1.25; }
.workspace-shell--participants .ws-step--done .ws-step__num { color: #fff; background: #2f8f96; border-color: #2f8f96; }
.workspace-shell--participants .ws-step--active .ws-step__num { color: #fff; background: var(--coral); border-color: var(--coral); box-shadow: 0 0 0 5px rgba(229,109,79,.12); transform: scale(1.04); }
.workspace-shell--participants .ws-step--active .ws-step__label { color: var(--ink); }
.workspace-shell--participants .ws-step__line { height: 2px; background: #dce6e4; border-radius: 99px; }
.workspace-shell--participants .ws-step__line--done { background: linear-gradient(90deg, #2f8f96, var(--coral)); }
.participants-form-shell { padding: 0; background: transparent; border: 0; box-shadow: none; }
.participants-form { display: grid; gap: 16px; }
.ws-participant-item { min-width: 0; animation: participant-arrive .5s cubic-bezier(.2,.75,.25,1) both; }
.ws-participant-item:nth-child(2) { animation-delay: .08s; }
.ws-participant-item:nth-child(3) { animation-delay: .16s; }
.ws-participant-group {
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(19,47,61,.1);
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(8,35,45,.06);
}
.ws-participant-group__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 72px;
    padding: 14px 20px;
    color: #fff;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 13px), linear-gradient(110deg, #08232d, #104653 74%, #216d72);
}
.ws-participant-group__identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ws-participant-group__icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: var(--ink); background: var(--sun); border-radius: 7px; font-size: .95rem; }
.ws-participant-group__identity small { display: block; margin-bottom: 3px; color: rgba(255,255,255,.6); font: 700 .57rem 'DM Mono', monospace; letter-spacing: .1em; }
.ws-participant-group__identity strong { display: block; overflow: hidden; color: #fff; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.ws-participant-group__count { flex: 0 0 auto; padding: 6px 9px; color: var(--sun); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 4px; font: 700 .63rem 'DM Mono', monospace; text-transform: uppercase; }
.ws-participant-row {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
    padding: 20px;
    border-bottom: 1px solid #edf1ef;
    transition: background .2s ease;
}
.ws-participant-row:last-child { border-bottom: 0; }
.ws-participant-row:hover { background: #fbfdfc; }
.ws-participant-row__num { display: grid; width: 34px; height: 34px; place-items: center; color: #216f73; background: #e1f2ef; border: 1px solid rgba(47,143,150,.18); border-radius: 7px; font: 700 .7rem 'DM Mono', monospace; }
.ws-participant-fields { display: grid; grid-template-columns: minmax(190px, 1.8fr) minmax(90px, .65fr) minmax(145px, 1.2fr) minmax(140px, 1.15fr) minmax(150px, 1.1fr); gap: 12px; min-width: 0; }
.ws-participant-field { min-width: 0; animation: participant-arrive .4s ease both; }
.ws-participant-field:nth-child(2) { animation-delay: .04s; }
.ws-participant-field:nth-child(3) { animation-delay: .08s; }
.ws-participant-field:nth-child(4) { animation-delay: .12s; }
.ws-participant-field:nth-child(5) { animation-delay: .16s; }
.ws-participant-field .form-label { display: block; min-height: 28px; margin-bottom: 7px; color: var(--ink-soft); font: 700 .62rem 'DM Mono', monospace; letter-spacing: .04em; text-transform: uppercase; }
.ws-participant-field .form-control,
.ws-participant-field .form-select { min-width: 0; min-height: 46px; padding: .68rem .75rem; background-color: #f8faf9; border-color: rgba(19,47,61,.13); border-radius: 5px; font-size: .8rem; transition: background .2s ease, border-color .2s ease, box-shadow .2s ease; }
.ws-participant-field .form-control:focus,
.ws-participant-field .form-select:focus { background-color: #fff; border-color: #2f8f96; box-shadow: 0 0 0 3px rgba(47,143,150,.12); }
.ws-participant-field:focus-within .form-label { color: #216f73; }
.participants-form__actions { display: flex; justify-content: flex-end; padding-top: 2px; }
.participants-form__actions .btn { min-height: 46px; padding: .7rem 1.15rem; border-radius: 5px; box-shadow: 0 8px 17px rgba(229,109,79,.2); transition: box-shadow .2s ease, transform .2s ease; }
.participants-form__actions .btn:hover { box-shadow: 0 12px 22px rgba(229,109,79,.28); transform: translateY(-2px); }
@keyframes participant-arrive { from { opacity: 0; translate: 0 10px; } to { opacity: 1; translate: 0 0; } }
@media (max-width: 1199.98px) {
    .ws-participant-fields { grid-template-columns: minmax(180px, 1.7fr) minmax(90px, .65fr) minmax(140px, 1.2fr); }
    .ws-participant-field--education { grid-column: 1 / 2; }
    .ws-participant-field--gender { grid-column: 2 / 4; }
}
@media (max-width: 767.98px) {
    .workspace-shell--participants .ws-steps { grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr) 22px minmax(0, 1fr); gap: 6px; padding: 13px 12px; }
    .workspace-shell--participants .ws-step { flex-direction: column; gap: 6px; text-align: center; }
    .workspace-shell--participants .ws-step__label { font-size: .62rem; }
    .ws-participant-row { grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 15px; }
    .ws-participant-row__num { width: 28px; height: 28px; }
    .ws-participant-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ws-participant-field--name,
    .ws-participant-field--city { grid-column: 1 / -1; }
    .ws-participant-field--education,
    .ws-participant-field--gender { grid-column: auto; }
}
@media (max-width: 479.98px) {
    .ws-participant-group__head { align-items: flex-start; padding: 13px; }
    .ws-participant-group__count { font-size: .56rem; }
    .ws-participant-fields { grid-template-columns: minmax(0, 1fr); }
    .ws-participant-field--name,
    .ws-participant-field--city,
    .ws-participant-field--education,
    .ws-participant-field--gender { grid-column: auto; }
    .ws-participant-field .form-label { min-height: 0; }
    .participants-form__actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .ws-participant-item,
    .ws-participant-field { animation: none !important; }
}
.workspace-shell--participants .participants-hero {
    position: relative;
    display: flex;
    min-height: 250px;
    align-items: center;
    overflow: hidden;
    margin-bottom: 22px;
    padding: clamp(25px, 4vw, 42px);
    color: #fff;
    background:
        radial-gradient(circle at 77% 8%, rgba(76, 207, 190, .19), transparent 27%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px),
        linear-gradient(115deg, #08232d 0%, #104653 57%, #176a70 100%);
    border: 1px solid rgba(138, 230, 215, .25);
    border-radius: 14px;
    box-shadow: 0 18px 40px rgba(8, 35, 45, .16);
}
.workspace-shell--participants .participants-hero__copy { position: relative; z-index: 2; max-width: 52%; }
.workspace-shell--participants .participants-hero__eyebrow,
.workspace-shell--participants .participants-hero__route {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #a8eee0;
    font: 700 .62rem 'DM Mono', monospace;
    letter-spacing: .1em;
}
.workspace-shell--participants .participants-hero__eyebrow { margin-bottom: 15px; }
.workspace-shell--participants .participants-hero__eyebrow i { color: #ffd27e; font-size: .9rem; }
.workspace-shell--participants .participants-hero h1 { margin: 0 0 9px; color: #fff; font-size: clamp(1.8rem, 3vw, 2.55rem); font-weight: 800; letter-spacing: -.045em; }
.workspace-shell--participants .participants-hero__copy p { max-width: 390px; margin: 0 0 17px; color: rgba(240, 250, 247, .75); font-size: .86rem; line-height: 1.7; }
.workspace-shell--participants .participants-hero__route { gap: 9px; color: #ffd27e; font-size: .56rem; }
.workspace-shell--participants .participants-hero__route span { color: rgba(255,255,255,.4); }
.workspace-shell--participants .participants-hero__step {
    position: absolute;
    top: 20px;
    right: 22px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    color: #d4fff4;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 99px;
    font: 700 .58rem 'DM Mono', monospace;
    letter-spacing: .06em;
}
.workspace-shell--participants .participants-hero__step i { color: #ffd27e; font-size: .85rem; }
.participants-journey { position: absolute; top: 50%; right: 1%; z-index: 1; width: 52%; transform: translateY(-48%); }
.participants-journey > svg { display: block; width: 100%; overflow: visible; filter: drop-shadow(0 12px 15px rgba(0,0,0,.17)); }
.participants-journey__orbit { position: absolute; top: 51%; left: 58%; width: 86%; height: 86%; border: 1px solid rgba(151,246,224,.17); border-radius: 50%; }
.participants-journey__orbit--one { transform: translate(-50%,-50%) rotate(-20deg); animation: participants-orbit 19s linear infinite; }
.participants-journey__orbit--two { width: 73%; height: 100%; border-color: rgba(255,210,126,.15); transform: translate(-50%,-50%) rotate(29deg); animation: participants-orbit 25s linear infinite reverse; }
.participants-journey__skyline { fill: none; stroke: rgba(185,239,226,.2); stroke-width: 1; }
.participants-journey__water { fill: rgba(58,190,177,.12); }
.participants-journey__wave,
.participants-journey__wind { fill: none; stroke: rgba(138,239,221,.56); stroke-linecap: round; stroke-width: 2; stroke-dasharray: 8 7; animation: participants-current 2.2s linear infinite; }
.participants-journey__pier { fill: #b99757; stroke: #f2d48f; stroke-width: 1.5; }
.participants-journey__crane { fill: none; stroke: #ffd27e; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.participants-journey__hook { stroke: #ffd27e; animation: participants-hook 3.4s ease-in-out infinite; transform-origin: 412px 63px; }
.participants-journey__ship { animation: participants-ship 3.6s ease-in-out infinite; transform-origin: 385px 147px; }
.participants-journey__hull { fill: #e56d4f; stroke: #ffb18e; stroke-width: 1.5; }
.participants-journey__deck { fill: #177d7b; stroke: #a8eee0; stroke-width: 1.5; }
.participants-journey__windows { fill: none; stroke: #ffd27e; stroke-linecap: round; stroke-width: 3; }
.participants-journey__smoke { fill: none; stroke: rgba(216,250,240,.68); stroke-linecap: round; stroke-width: 3; stroke-dasharray: 12 38; animation: participants-smoke 2.4s ease-out infinite; }
.participants-journey__boarding-pass { transform-origin: 112px 119px; animation: participants-pass-transform 8s ease-in-out infinite; }
.participants-journey__boarding-pass > path:first-child { fill: rgba(164,246,224,.19); stroke: #a4f6e0; stroke-width: 2; }
.participants-journey__pass-line { fill: none; stroke: #c8fff1; stroke-linecap: round; stroke-width: 2; }
.participants-journey__pass-perforation { fill: none; stroke: rgba(200,255,241,.7); stroke-dasharray: 3 4; stroke-width: 1.5; }
.participants-journey__boarding-pass circle { fill: rgba(255,210,126,.15); stroke: #ffd27e; stroke-width: 1.5; }
.participants-journey__pass-check { fill: none; stroke: #ffd27e; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.participants-journey__person { opacity: 0; transform-origin: 204px 140px; animation: participants-person-walk 8s ease-in-out infinite; }
.participants-journey__person-head { fill: #ffd27e; stroke: #fff0ca; stroke-width: 1.5; }
.participants-journey__person-body,
.participants-journey__person-arm,
.participants-journey__person-leg { fill: none; stroke: #a4f6e0; stroke-linecap: round; stroke-linejoin: round; stroke-width: 6; }
.participants-journey__person-arm { transform-origin: 217px 132px; animation: participants-arm-swing .55s ease-in-out infinite alternate; }
.participants-journey__person-leg--one { transform-origin: 204px 145px; animation: participants-leg-swing .55s ease-in-out infinite alternate; }
.participants-journey__spark { fill: #ffd27e; transform-origin: 277px 84px; animation: participants-spark 2.4s ease-in-out infinite; }
.participants-journey__caption { position: absolute; right: 3%; bottom: 2px; color: rgba(205,247,235,.6); font: 700 .52rem 'DM Mono', monospace; letter-spacing: .1em; }
.workspace-shell--participants .ws-steps { background: linear-gradient(120deg, #fff 0%, #f4fbf8 100%); border-color: rgba(47,143,150,.17); }
.workspace-shell--participants .ws-step--done .ws-step__num { background: linear-gradient(145deg, #35b59d, #247d7b); box-shadow: 0 5px 12px rgba(47,143,150,.18); }
.workspace-shell--participants .ws-step--active .ws-step__num { background: linear-gradient(145deg, #f17d5d, #d95c44); box-shadow: 0 0 0 5px rgba(229,109,79,.12), 0 6px 15px rgba(229,109,79,.22); }
.ws-participant-group { border-color: rgba(47,143,150,.16); border-radius: 12px; box-shadow: 0 14px 32px rgba(8,35,45,.075); }
.ws-participant-group__head { background: repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, transparent 1px 13px), linear-gradient(110deg, #08232d, #104653 68%, #1a7777); }
.ws-participant-group__icon { color: #123942; background: linear-gradient(145deg, #ffe39a, #f2c66d); border-radius: 11px; box-shadow: 0 6px 16px rgba(242,198,109,.16); }
.ws-participant-group__count { color: #bdf5e7; background: rgba(123,231,205,.1); border-color: rgba(164,246,224,.22); }
.ws-participant-row__num { color: #fff; background: linear-gradient(145deg, #32a99b, #247d7b); border: 0; border-radius: 10px; box-shadow: 0 6px 13px rgba(47,143,150,.2); }
.ws-participant-field .form-label { display: flex; align-items: center; gap: 6px; }
.ws-participant-field .form-label i { color: #268f87; font-size: .78rem; }
.ws-participant-field .form-control,
.ws-participant-field .form-select { border-radius: 8px; }
.ws-participant-field .form-control:focus,
.ws-participant-field .form-select:focus { border-color: #2f8f96; box-shadow: 0 0 0 3px rgba(47,143,150,.13), 0 5px 16px rgba(47,143,150,.08); }
.participants-form__actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; border-radius: 9px; }
@keyframes participants-orbit { to { rotate: 360deg; } }
@keyframes participants-current { to { stroke-dashoffset: -30; } }
@keyframes participants-pass-transform {
    0%, 18% { opacity: 1; transform: translateX(0) rotate(-4deg) scale(1); }
    31% { opacity: 1; transform: translateX(65px) rotate(5deg) scale(.9); }
    43%, 100% { opacity: 0; transform: translateX(103px) rotate(15deg) scale(.58); }
}
@keyframes participants-person-walk {
    0%, 25% { opacity: 0; transform: translateX(-24px); }
    33% { opacity: 1; transform: translateX(0); }
    71%, 88% { opacity: 1; transform: translateX(92px); }
    100% { opacity: 0; transform: translateX(104px); }
}
@keyframes participants-arm-swing { to { rotate: -22deg; } }
@keyframes participants-leg-swing { to { rotate: 24deg; } }
@keyframes participants-hook { 0%, 100% { translate: 0 0; } 50% { translate: 0 5px; } }
@keyframes participants-ship { 0%, 100% { translate: 0 0; } 50% { translate: 0 -2px; } }
@keyframes participants-smoke { from { stroke-dashoffset: 50; opacity: .1; } 40% { opacity: .8; } to { stroke-dashoffset: 0; opacity: .1; } }
@keyframes participants-spark { 0%, 100% { opacity: .65; scale: .8; rotate: 0deg; } 50% { opacity: 1; scale: 1.15; rotate: 20deg; } }
@media (max-width: 767.98px) {
    .workspace-shell--participants .participants-hero { min-height: 275px; align-items: flex-start; padding: 25px 22px; }
    .workspace-shell--participants .participants-hero__copy { max-width: 100%; }
    .workspace-shell--participants .participants-hero__copy p { max-width: 68%; font-size: .78rem; }
    .workspace-shell--participants .participants-hero h1 { max-width: 70%; font-size: 2rem; }
    .participants-journey { top: auto; right: -4%; bottom: -7px; width: 57%; opacity: .78; transform: none; }
    .participants-journey__caption { display: none; }
}
@media (max-width: 479.98px) {
    .workspace-shell--participants .participants-hero { min-height: 288px; padding: 23px 18px; }
    .workspace-shell--participants .participants-hero__step { top: auto; right: 15px; bottom: 14px; padding: 7px 9px; font-size: .51rem; }
    .workspace-shell--participants .participants-hero__eyebrow { font-size: .53rem; }
    .workspace-shell--participants .participants-hero__copy p { max-width: 75%; }
    .participants-journey { right: -11%; bottom: 2px; width: 62%; opacity: .62; }
}
@media (prefers-reduced-motion: reduce) {
    .participants-journey *,
    .participants-journey *::before,
    .participants-journey *::after { animation: none !important; }
    .participants-journey__boarding-pass { display: none; }
    .participants-journey__person { opacity: 1; transform: translateX(92px); }
}

/* Role dashboards */
.workspace-shell--dashboard {
    --role-accent: var(--coral);
    padding-top: 28px;
    background: linear-gradient(180deg, #f8faf9 0%, var(--mist) 48%, #edf4f2 100%);
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] { --role-accent: var(--coral); }
.workspace-shell--dashboard[data-dashboard-role="finance"] { --role-accent: #2f8f96; }
.workspace-shell--dashboard[data-dashboard-role="guide"] { --role-accent: #c39536; }
.workspace-shell--dashboard[data-dashboard-role="edukator"] { --role-accent: #488a69; }
.workspace-shell--dashboard[data-dashboard-role="pengunjung"] { --role-accent: var(--coral); }
.workspace-shell--dashboard-visitor .db-hero__left { max-width: 510px; }
.workspace-shell--dashboard-visitor .db-hero__scene svg { width: 68%; max-width: 760px; }
.workspace-shell--dashboard-visitor .db-visitor-wordmark {
    display: flex;
    flex-wrap: wrap;
    gap: 0 8px;
    margin: 2px 0 7px;
    color: #c7fff0;
    font: 800 clamp(.78rem,1.45vw,1.05rem)/1.25 'DM Mono',monospace;
    letter-spacing: .12em;
    text-shadow: 0 0 15px rgba(114,234,208,.4);
    text-transform: uppercase;
}
.workspace-shell--dashboard-visitor .db-visitor-wordmark span { display: inline-block; opacity: 0; animation: dashboard-word-reveal .55s cubic-bezier(.2,.75,.25,1) forwards; }
.workspace-shell--dashboard-visitor .db-visitor-wordmark span:nth-child(2) { animation-delay: .45s; }
.workspace-shell--dashboard-visitor .db-visitor-wordmark span:nth-child(3) { animation-delay: .9s; }
.workspace-shell--dashboard-visitor .db-port-wake { fill: none; stroke: rgba(139,241,222,.5); stroke-linecap: round; stroke-width: 1.5; stroke-dasharray: 7 6; animation: dashboard-port-wake 2.2s linear infinite; }
.workspace-shell--dashboard-visitor .db-containers { transform-box: fill-box; transform-origin: center bottom; animation: dashboard-ship-rock 3.6s ease-in-out infinite; }
.workspace-shell--dashboard-visitor .db-reach-stacker { transform-box: fill-box; transform-origin: center bottom; animation: dashboard-reach-move 5s ease-in-out infinite; }
.workspace-shell--dashboard-visitor .db-museum-sign { filter: drop-shadow(0 0 5px rgba(77,224,196,.3)); }
.workspace-shell--dashboard-visitor .db-stat__icon {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    margin-bottom: 11px;
    color: #167f7b;
    background: linear-gradient(145deg,#e2faf3,#c9f0e8);
    border: 1px solid rgba(47,143,150,.14);
    border-radius: 10px;
    box-shadow: 0 5px 13px rgba(31,137,132,.1);
    font-size: .95rem;
}
.workspace-shell--dashboard-visitor .db-stat:nth-child(2) .db-stat__icon { color: #d75d49; background: linear-gradient(145deg,#fff0e6,#ffe2d6); border-color: rgba(229,109,79,.15); }
.workspace-shell--dashboard-visitor .db-stat:nth-child(3) .db-stat__icon { color: #a8781d; background: linear-gradient(145deg,#fff7dc,#ffedbb); border-color: rgba(195,149,54,.17); }
@keyframes dashboard-word-reveal { from { opacity: 0; translate: 0 9px; filter: blur(4px); } to { opacity: 1; translate: 0 0; filter: blur(0); } }
@keyframes dashboard-port-wake { to { stroke-dashoffset: -26; } }
@keyframes dashboard-ship-rock { 0%,100% { translate: 0 0; } 50% { translate: 0 -2px; } }
@keyframes dashboard-reach-move { 0%,100% { translate: 0 0; } 42%,58% { translate: 5px 0; } }
.workspace-shell--dashboard .workspace-content > * { animation: dashboard-arrive .55s cubic-bezier(.2,.75,.25,1) both; }
.workspace-shell--dashboard .workspace-content > *:nth-child(2) { animation-delay: .07s; }
.workspace-shell--dashboard .workspace-content > *:nth-child(3) { animation-delay: .14s; }
.workspace-shell--dashboard .workspace-content > *:nth-child(4) { animation-delay: .21s; }
.workspace-shell--dashboard .db-hero {
    min-height: 196px;
    margin-bottom: 26px;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,.022) 0 1px, transparent 1px 15px), linear-gradient(115deg, #08232d 0%, #0d3a4a 55%, #175361 100%);
    border: 1px solid rgba(8,35,45,.12);
    border-radius: 10px;
    box-shadow: 0 20px 42px rgba(8,35,45,.13);
}
.workspace-shell--dashboard .db-hero::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 2;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, var(--role-accent), var(--sun), var(--coral));
}
.workspace-shell--dashboard .db-hero__content { min-height: 196px; padding: 30px clamp(24px, 3vw, 42px); }
.workspace-shell--dashboard .db-hero__left { max-width: 610px; }
.workspace-shell--dashboard .db-hero__kicker { color: var(--sun); font-size: .64rem; }
.workspace-shell--dashboard .db-hero__dot { background: var(--role-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--role-accent) 28%, transparent); }
.workspace-shell--dashboard .db-hero__title { margin-bottom: 9px; font-size: 2.35rem; line-height: 1.05; letter-spacing: 0; }
.workspace-shell--dashboard .db-hero__desc { max-width: 530px; color: rgba(255,255,255,.72); font-size: .84rem; }
.workspace-shell--dashboard .db-hero__scene svg { opacity: .72; }
.workspace-shell--dashboard .db-status-pill { border-radius: 5px; }
.workspace-shell--dashboard .db-cta { padding: 11px 16px; background: rgba(255,255,255,.08); border-color: color-mix(in srgb, var(--role-accent) 45%, rgba(255,255,255,.2)); border-radius: 5px; }
.workspace-shell--dashboard .db-cta:hover { background: color-mix(in srgb, var(--role-accent) 24%, transparent); border-color: var(--role-accent); }
.workspace-shell--dashboard .db-notice { background: #fffaf0; border-color: rgba(195,149,54,.24); border-left-color: var(--sun); border-radius: 6px; box-shadow: 0 7px 18px rgba(8,35,45,.035); }
.workspace-shell--dashboard .db-notice__text { color: var(--ink-soft); }
.workspace-shell--dashboard .db-stats { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 13px; margin-bottom: 26px; }
.workspace-shell--dashboard .db-stat {
    min-width: 0;
    min-height: 145px;
    padding: 20px 20px 17px;
    background: linear-gradient(145deg, #fff 0%, #fbfcfb 100%);
    border: 1px solid rgba(19,47,61,.09);
    border-radius: 8px;
    box-shadow: 0 8px 20px rgba(8,35,45,.045);
    animation: dashboard-arrive .48s ease both;
    transition: border-color .22s ease, box-shadow .22s ease, translate .22s ease;
}
.workspace-shell--dashboard .db-stat:nth-child(2) { animation-delay: .05s; }
.workspace-shell--dashboard .db-stat:nth-child(3) { animation-delay: .1s; }
.workspace-shell--dashboard .db-stat:nth-child(4) { animation-delay: .15s; }
.workspace-shell--dashboard .db-stat:nth-child(5) { animation-delay: .2s; }
.workspace-shell--dashboard .db-stat:nth-child(6) { animation-delay: .25s; }
.workspace-shell--dashboard .db-stat:nth-child(7) { animation-delay: .3s; }
.workspace-shell--dashboard .db-stat:hover { border-color: color-mix(in srgb, var(--role-accent) 32%, var(--line)); box-shadow: 0 16px 28px rgba(8,35,45,.09); translate: 0 -3px; transform: none; }
.workspace-shell--dashboard .db-stat__index { position: absolute; top: 17px; right: 18px; color: #a5b2b1; font: 500 .58rem 'DM Mono', monospace; letter-spacing: .08em; }
.workspace-shell--dashboard .db-stat__label { margin: 0 28px 17px 0; color: var(--ink-soft); font: 700 .62rem 'DM Mono', monospace; letter-spacing: .09em; }
.workspace-shell--dashboard .db-stat__value { min-height: 34px; margin-bottom: 7px; color: var(--ink); font: 700 1.9rem/1.05 'Playfair Display', Georgia, serif; letter-spacing: 0; overflow-wrap: anywhere; }
.workspace-shell--dashboard .db-stat__caption { max-width: 260px; color: #788b8d; font-size: .69rem; }
.workspace-shell--dashboard .db-stat__accent { top: 15px; bottom: 15px; left: 0; width: 3px; height: auto; border-radius: 0 4px 4px 0; }
.workspace-shell--dashboard .db-stat--coral .db-stat__accent { background: var(--coral); }
.workspace-shell--dashboard .db-stat--sea .db-stat__accent { background: #2f8f96; }
.workspace-shell--dashboard .db-stat--sun .db-stat__accent { background: var(--sun); }
.workspace-shell--dashboard .db-stat--ink .db-stat__accent { background: var(--ink); }
.workspace-shell--dashboard[data-dashboard-role="administrator"] {
    --role-accent: #e56d4f;
    background:
        radial-gradient(ellipse at 92% 3%, rgba(47,143,150,.1), transparent 31rem),
        linear-gradient(180deg, #f8faf9 0%, #edf4f2 100%);
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-hero {
    background:
        radial-gradient(ellipse at 83% 34%, rgba(63,151,154,.22), transparent 38%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.022) 0 1px, transparent 1px 15px),
        linear-gradient(115deg, #08232d 0%, #0d3a4a 55%, #175361 100%);
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-hero__scene > svg:not(.db-admin-port-scene) { display: none; }
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-hero__scene .db-admin-port-scene {
    width: 62%;
    max-width: 700px;
    opacity: .92;
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-admin-hoist {
    transform-box: fill-box;
    transform-origin: center;
    animation: dashboard-admin-hoist 5s ease-in-out infinite;
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-admin-grain-stream {
    stroke-dasharray: 2 5;
    animation: dashboard-admin-grain 1.1s linear infinite;
}
@keyframes dashboard-admin-hoist {
    0%, 100% { translate: 0 0; }
    42%, 62% { translate: 13px 8px; }
}
@keyframes dashboard-admin-grain { to { stroke-dashoffset: -14; } }
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-stat__icon {
    display: inline-grid;
    width: 36px;
    height: 36px;
    place-items: center;
    margin: 0 0 11px;
    color: #167f7b;
    background: linear-gradient(145deg, #e3f8f4, #cbece7);
    border: 1px solid rgba(47,143,150,.16);
    border-radius: 10px;
    box-shadow: 0 5px 13px rgba(31,137,132,.1);
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-stat__icon svg,
.admin-dashboard-shortcut__icon svg,
.admin-dashboard-shortcut__arrow { width: 20px; height: 20px; }
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-stat:nth-child(4n + 2) .db-stat__icon {
    color: #d75d49;
    background: linear-gradient(145deg, #fff0e6, #ffe2d6);
    border-color: rgba(229,109,79,.16);
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-stat:nth-child(4n + 3) .db-stat__icon {
    color: #a8781d;
    background: linear-gradient(145deg, #fff7dc, #ffedbb);
    border-color: rgba(195,149,54,.18);
}
.workspace-shell--dashboard[data-dashboard-role="administrator"] .db-stat:nth-child(4n) .db-stat__icon {
    color: #5266a2;
    background: linear-gradient(145deg, #edf0ff, #dfe5ff);
    border-color: rgba(82,102,162,.15);
}
.admin-dashboard-shortcuts { display: grid; gap: 14px; }
.admin-dashboard-shortcuts__heading .eyebrow { color: #748789; font: 700 .62rem 'DM Mono', monospace; letter-spacing: .12em; text-transform: uppercase; }
.admin-dashboard-shortcuts__heading h2 { margin: 5px 0 0; color: var(--ink); font: 700 1.55rem/1.15 'Playfair Display', Georgia, serif; }
.admin-dashboard-shortcuts__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.admin-dashboard-shortcut {
    display: flex;
    min-width: 0;
    min-height: 82px;
    align-items: center;
    gap: 12px;
    padding: 14px;
    color: var(--ink);
    background: linear-gradient(145deg, #fff, #fbfcfb);
    border: 1px solid rgba(19,47,61,.09);
    border-radius: 9px;
    box-shadow: 0 8px 20px rgba(8,35,45,.04);
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, translate .2s ease;
}
.admin-dashboard-shortcut:hover,
.admin-dashboard-shortcut:focus-visible {
    color: var(--ink);
    border-color: color-mix(in srgb, var(--role-accent) 38%, var(--line));
    box-shadow: 0 12px 24px rgba(8,35,45,.09);
    translate: 0 -2px;
}
.admin-dashboard-shortcut:focus-visible { outline: 3px solid rgba(47,143,150,.35); outline-offset: 2px; }
.admin-dashboard-shortcut__icon { display: inline-grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 11px; }
.admin-dashboard-shortcut__icon.is-coral { color: #d75d49; background: #fff0e6; }
.admin-dashboard-shortcut__icon.is-teal { color: #167f7b; background: #e3f8f4; }
.admin-dashboard-shortcut__icon.is-gold { color: #a8781d; background: #fff7dc; }
.admin-dashboard-shortcut__icon.is-blue { color: #5266a2; background: #edf0ff; }
.admin-dashboard-shortcut > span:nth-child(2) { display: grid; min-width: 0; gap: 4px; }
.admin-dashboard-shortcut strong { overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-dashboard-shortcut small { overflow: hidden; color: #788b8d; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-dashboard-shortcut__arrow { flex: 0 0 20px; margin-left: auto; color: #91a1a0; transition: translate .2s ease, color .2s ease; }
.admin-dashboard-shortcut:hover .admin-dashboard-shortcut__arrow { color: var(--role-accent); translate: 3px 0; }
.workspace-shell--dashboard .dashboard-insight-grid { align-items: stretch; gap: 16px; }
.workspace-shell--dashboard .dashboard-admin-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.workspace-shell--dashboard .dashboard-admin-charts .workspace-chart-card:last-child { grid-column: 1 / -1; }
.workspace-shell--dashboard .dashboard-chart-bars { display: grid; gap: 17px; padding: 12px 2px 2px; }
.workspace-shell--dashboard .dashboard-chart-row { display: grid; grid-template-columns: minmax(105px, 155px) minmax(0, 1fr) 54px; align-items: center; gap: 12px; }
.workspace-shell--dashboard .dashboard-chart-label { color: var(--ink-soft); font-size: .72rem; }
.workspace-shell--dashboard .dashboard-chart-track { height: 13px; overflow: hidden; background: #edf2f1; border-radius: 99px; }
.workspace-shell--dashboard .dashboard-chart-bar { display: block; height: 100%; min-width: 3px; background: linear-gradient(90deg, var(--role-accent), #63b5ad); border-radius: inherit; transition: width .35s ease; }
.workspace-shell--dashboard .dashboard-chart-row:nth-child(3n + 2) .dashboard-chart-bar { background: linear-gradient(90deg, #e56d4f, #f1a36b); }
.workspace-shell--dashboard .dashboard-chart-row:nth-child(3n) .dashboard-chart-bar { background: linear-gradient(90deg, #d7a63e, #f2c66d); }
.workspace-shell--dashboard .dashboard-chart-value { color: var(--ink); font: 700 .76rem 'DM Mono', monospace; text-align: right; }
.workspace-shell--dashboard .workspace-chart-card { padding: 20px 22px; background: linear-gradient(160deg, #fff, #fbfcfb); border: 1px solid rgba(19,47,61,.09); border-radius: 8px; box-shadow: 0 12px 28px rgba(8,35,45,.055); }
.workspace-shell--dashboard .workspace-chart-head { padding-bottom: 14px; border-bottom: 1px solid rgba(19,47,61,.08); }
.workspace-shell--dashboard .workspace-chart-head .eyebrow { margin-bottom: 6px; font-size: .61rem; }
.workspace-shell--dashboard .workspace-chart-head h2 { font-size: 1.45rem; }
.workspace-shell--dashboard .chart-badge { border-radius: 5px; }
.workspace-shell--dashboard .dashboard-note { position: relative; min-height: 300px; overflow: hidden; padding: 28px; background: linear-gradient(145deg, #0b303b, #164c58 72%, #216d72); border: 1px solid rgba(255,255,255,.09); border-radius: 8px; box-shadow: 0 14px 30px rgba(8,35,45,.13); }
.workspace-shell--dashboard .dashboard-note::before { position: absolute; top: 0; left: 0; width: 3px; height: 100%; content: ''; background: linear-gradient(var(--role-accent), var(--sun), transparent); }
.workspace-shell--dashboard .dashboard-note > * { position: relative; z-index: 1; }
.workspace-shell--dashboard .dashboard-note .eyebrow { color: var(--sun); }
.workspace-shell--dashboard .dashboard-note h2 { font: 700 1.85rem/1.06 'Playfair Display', Georgia, serif; letter-spacing: 0; }
.workspace-shell--dashboard .dashboard-note p { max-width: 330px; color: rgba(255,255,255,.7); font-size: .78rem; }
.workspace-shell--dashboard .dashboard-note .btn { align-self: flex-start; border-radius: 5px; }
.workspace-shell--dashboard .db-table-head { margin: 0 0 12px; padding-top: 6px; }
.workspace-shell--dashboard .db-table-title { font-size: 1.6rem; }
.workspace-shell--dashboard .db-table-more { color: var(--role-accent); }
.workspace-shell--dashboard .table-shell { border: 1px solid rgba(19,47,61,.08); border-radius: 8px; box-shadow: 0 12px 26px rgba(8,35,45,.05); }
.workspace-shell--dashboard .dashboard-activity-table { min-width: 640px; }
.workspace-shell--dashboard .dashboard-activity-table tbody tr { transition: background .18s ease; }
.workspace-shell--dashboard .dashboard-activity-table tbody tr:hover { background: #f5faf8; }
.workspace-shell--dashboard .dashboard-activity-table tbody td:first-child strong { color: var(--ink); font-size: .79rem; }
.workspace-shell--dashboard .dashboard-activity-table tbody td small { color: #75878a !important; font-size: .68rem; }
.workspace-shell--dashboard .dashboard-activity-table .status-pill { border-radius: 5px; font-size: .63rem; }
.workspace-shell--dashboard .dashboard-activity-table .text-link { display: inline-flex; align-items: center; gap: 5px; color: var(--role-accent); font-size: .74rem; transition: gap .2s ease; }
.workspace-shell--dashboard .dashboard-activity-table .text-link:hover { gap: 8px; }

/* Visitor dashboard */
.workspace-shell--dashboard-visitor {
    --role-accent: #1ba6a6;
    background:
        radial-gradient(ellipse at 86% 7%, rgba(52, 189, 190, .12), transparent 30rem),
        radial-gradient(ellipse at 8% 42%, rgba(246, 163, 111, .1), transparent 28rem),
        repeating-linear-gradient(0deg, rgba(17, 73, 83, .018) 0 1px, transparent 1px 32px),
        linear-gradient(180deg, #f4fbfa 0%, #f5f7fb 52%, #eef6f4 100%);
}
.workspace-shell--dashboard-visitor .db-hero {
    background:
        radial-gradient(ellipse at 80% 10%, rgba(63, 217, 207, .24), transparent 34%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, transparent 1px 13px),
        linear-gradient(112deg, #092c3b 0%, #105565 54%, #146e76 100%);
    border-color: rgba(25, 141, 151, .25);
    box-shadow: 0 22px 48px rgba(9, 63, 76, .2), inset 0 1px rgba(255,255,255,.12);
}
.workspace-shell--dashboard-visitor .db-hero__kicker { color: #7ce5d4; }
.workspace-shell--dashboard-visitor .db-hero__dot {
    background: #4de0c4;
    box-shadow: 0 0 0 4px rgba(77, 224, 196, .2), 0 0 18px rgba(77, 224, 196, .6);
}
.workspace-shell--dashboard-visitor .db-hero__scene svg {
    opacity: .9;
    filter: drop-shadow(0 0 18px rgba(75, 219, 207, .12));
}
.workspace-shell--dashboard-visitor .db-status-pill {
    color: #93f2cf;
    background: rgba(71, 217, 171, .12);
    border-color: rgba(116, 239, 195, .32);
}
.workspace-shell--dashboard-visitor .db-cta {
    color: #062f3a;
    background: linear-gradient(115deg, #72ead0, #73cde1);
    border-color: transparent;
    box-shadow: 0 8px 22px rgba(61, 209, 197, .22);
}
.workspace-shell--dashboard-visitor .db-cta:hover {
    color: #062f3a;
    background: linear-gradient(115deg, #9af3df, #91dcef);
    border-color: transparent;
    box-shadow: 0 12px 26px rgba(61, 209, 197, .32);
}
.visitor-dashboard-media {
    position: relative;
    padding: clamp(20px, 3vw, 32px);
    overflow: hidden;
    background:
        radial-gradient(ellipse at 95% 0, rgba(82, 216, 195, .13), transparent 36%),
        linear-gradient(135deg, #fff 0%, #f4fbfa 58%, #eff7f7 100%);
    border: 1px solid rgba(23, 131, 139, .15);
    border-radius: 14px;
    box-shadow: 0 16px 36px rgba(9, 63, 76, .075), inset 0 1px rgba(255,255,255,.95);
}
.visitor-dashboard-media::before {
    position: absolute;
    top: 0;
    left: clamp(20px, 3vw, 32px);
    width: 74px;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, #4bd9c2, #61badd, #ef946f);
    box-shadow: 0 0 16px rgba(75,217,194,.35);
}
.visitor-dashboard-media__intro { margin-bottom: 19px; }
.visitor-dashboard-media__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
    color: #168a87;
    font: 700 .6rem 'DM Mono', monospace;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.visitor-dashboard-media__eyebrow > span {
    width: 7px;
    height: 7px;
    background: #45cbb3;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(69,203,179,.12), 0 0 12px rgba(69,203,179,.55);
}
.visitor-dashboard-media__intro h2 {
    margin: 0 0 5px;
    color: #103d4a;
    font: 700 clamp(1.35rem, 2.5vw, 1.85rem)/1.16 'Playfair Display', Georgia, serif;
}
.visitor-dashboard-media__intro p { margin: 0; color: #678087; font-size: .8rem; }
.visitor-dashboard-media__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(220px, .8fr);
    gap: 16px;
}
.visitor-dashboard-video,
.visitor-dashboard-image {
    position: relative;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    background: #092c3b;
    border: 1px solid rgba(15, 89, 101, .2);
    border-radius: 11px;
    box-shadow: 0 12px 26px rgba(9, 63, 76, .12);
}
.visitor-dashboard-video::after,
.visitor-dashboard-image::after {
    position: absolute;
    inset: 0;
    content: '';
    background: linear-gradient(180deg, rgba(5,30,40,.02) 55%, rgba(5,30,40,.58) 100%);
    pointer-events: none;
}
.visitor-dashboard-video video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 8.4;
    background: #092c3b;
    object-fit: cover;
}
.visitor-dashboard-image { min-height: 220px; }
.visitor-dashboard-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 220px;
    object-fit: cover;
    object-position: center;
}
.visitor-dashboard-video figcaption,
.visitor-dashboard-image figcaption {
    position: absolute;
    right: 14px;
    bottom: 13px;
    left: 14px;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font: 700 .67rem 'DM Mono', monospace;
    letter-spacing: .035em;
    text-shadow: 0 1px 6px rgba(0,0,0,.35);
}
.visitor-dashboard-media__pulse {
    width: 7px;
    height: 7px;
    background: #6de4c8;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(109,228,200,.18), 0 0 12px rgba(109,228,200,.7);
}
.visitor-dashboard-media__index {
    margin-left: auto;
    color: rgba(225,250,247,.72);
    font-size: .53rem;
    letter-spacing: .1em;
}
.visitor-dashboard-image figcaption > span:nth-child(2) { display: grid; gap: 2px; }
.visitor-dashboard-image figcaption strong { font-size: .72rem; letter-spacing: .13em; }
.visitor-dashboard-image figcaption small { color: rgba(225,250,247,.75); font: 400 .56rem 'Manrope', sans-serif; }
.visitor-dashboard-image__mark {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;
    color: #d5fff5;
    background: rgba(89,220,194,.2);
    border: 1px solid rgba(165,255,230,.55);
    border-radius: 9px;
    font: 700 .72rem 'DM Mono', monospace;
    box-shadow: 0 0 16px rgba(89,220,194,.2);
}
.workspace-shell--dashboard-visitor .db-notice {
    position: relative;
    background: linear-gradient(105deg, #fff9f5, #fff 72%, #fff6ed);
    border: 2px solid #ef8b55;
    border-left: 6px solid #df533e;
    border-radius: 3px;
    box-shadow: 0 10px 26px rgba(177, 71, 49, .11), inset 0 0 0 1px rgba(255,255,255,.8);
}
.workspace-shell--dashboard-visitor .db-notice__icon {
    width: 32px;
    height: 32px;
    color: #fff;
    background: linear-gradient(145deg, #ef7652, #d94a42);
    box-shadow: 0 4px 12px rgba(213, 78, 61, .24);
}
.workspace-shell--dashboard-visitor .db-notice__label { color: #bd4835; }
.workspace-shell--dashboard-visitor .db-stat {
    position: relative;
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(240,250,249,.94));
    border-color: rgba(23, 106, 119, .13);
    box-shadow: 0 12px 26px rgba(14, 65, 77, .065), inset 0 1px rgba(255,255,255,.9);
}
.workspace-shell--dashboard-visitor .db-stat::after {
    position: absolute;
    top: -34px;
    right: -24px;
    width: 112px;
    height: 112px;
    content: '';
    background: radial-gradient(circle, color-mix(in srgb, var(--visitor-stat-glow) 22%, transparent), transparent 70%);
    pointer-events: none;
}
.workspace-shell--dashboard-visitor .db-stat:nth-child(1) { --visitor-stat-glow: #20b7ad; }
.workspace-shell--dashboard-visitor .db-stat:nth-child(2) { --visitor-stat-glow: #ef866c; }
.workspace-shell--dashboard-visitor .db-stat:nth-child(3) { --visitor-stat-glow: #e8b949; }
.workspace-shell--dashboard-visitor .db-stat__value,
.workspace-shell--dashboard-visitor .db-stat__label,
.workspace-shell--dashboard-visitor .db-stat__caption { position: relative; z-index: 1; }
.workspace-shell--dashboard-visitor .db-stat__index {
    position: absolute;
    z-index: 1;
    top: 17px;
    right: 18px;
}
.workspace-shell--dashboard-visitor .db-stat__value { color: #103d4a; }
.workspace-shell--dashboard-visitor .db-stat:nth-child(1) .db-stat__accent { background: linear-gradient(180deg, #31d3bd, #1c91b6); }
.workspace-shell--dashboard-visitor .db-stat:nth-child(2) .db-stat__accent { background: linear-gradient(180deg, #ffad74, #e56d72); }
.workspace-shell--dashboard-visitor .db-stat:nth-child(3) .db-stat__accent { background: linear-gradient(180deg, #f5d16f, #ed9f46); }
.workspace-shell--dashboard-visitor .db-stat:hover {
    border-color: color-mix(in srgb, var(--visitor-stat-glow) 42%, white);
    box-shadow: 0 18px 32px rgba(14, 65, 77, .12), 0 0 0 1px color-mix(in srgb, var(--visitor-stat-glow) 13%, transparent);
}
.workspace-shell--dashboard-visitor .workspace-chart-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(145deg, #fff 0%, #f4fbfc 100%);
    border-color: rgba(26, 130, 144, .14);
    box-shadow: 0 14px 32px rgba(14, 65, 77, .075);
}
.workspace-shell--dashboard-visitor .workspace-chart-card::after {
    position: absolute;
    z-index: -1;
    top: 42px;
    right: -55px;
    width: 250px;
    height: 250px;
    content: '';
    background: radial-gradient(circle, rgba(41, 192, 177, .11), transparent 69%);
    pointer-events: none;
}
.workspace-shell--dashboard-visitor .workspace-chart-head {
    position: relative;
    z-index: 1;
    border-color: rgba(26, 130, 144, .13);
}
.workspace-shell--dashboard-visitor .workspace-chart-head h2 { margin-bottom: 4px; }
.workspace-shell--dashboard-visitor .visitor-chart-caption {
    margin: 0;
    color: #748c91;
    font-size: .72rem;
}
.workspace-shell--dashboard-visitor .workspace-chart-wrap {
    position: relative;
    z-index: 1;
    height: 270px;
    padding: 12px 4px 0;
    background-image: linear-gradient(rgba(25, 113, 126, .025) 1px, transparent 1px);
    background-size: 100% 36px;
}
.workspace-shell--dashboard-visitor .chart-badge {
    color: #117d7c;
    background: #e1f8f1;
}
.workspace-shell--dashboard-visitor .chart-badge-dot {
    background: #27b99c;
    box-shadow: 0 0 0 4px rgba(39, 185, 156, .14), 0 0 12px rgba(39, 185, 156, .45);
}
.workspace-shell--dashboard-visitor .dashboard-note {
    background:
        radial-gradient(circle at 100% 0, rgba(59, 201, 191, .24), transparent 46%),
        linear-gradient(145deg, #0b3443, #105667 68%, #14747a);
    border-color: rgba(106, 229, 214, .2);
    box-shadow: 0 18px 38px rgba(9, 63, 76, .18);
}
.workspace-shell--dashboard-visitor .dashboard-note::before {
    width: 4px;
    background: linear-gradient(#62e4cc, #63bde0, #ed9a71);
}
.workspace-shell--dashboard-visitor .dashboard-note .eyebrow { color: #8df0dc; }
.workspace-shell--dashboard-visitor .dashboard-note .btn {
    color: #073b43;
    background: linear-gradient(110deg, #75e8ce, #7bcbe0);
    border: 0;
    box-shadow: 0 8px 20px rgba(68, 209, 191, .18);
}
.workspace-shell--dashboard-visitor .dashboard-note .btn:hover {
    color: #073b43;
    background: linear-gradient(110deg, #a0f3df, #9bdef0);
}
.workspace-shell--dashboard-visitor .db-table-title { color: #103d4a; }
.workspace-shell--dashboard-visitor .db-table-more {
    color: #118e91;
    transition: gap .2s ease, color .2s ease;
}
.workspace-shell--dashboard-visitor .db-table-more:hover { color: #0a626e; }
.workspace-shell--dashboard-visitor .table-shell {
    border-color: rgba(20, 112, 126, .14);
    box-shadow: 0 15px 34px rgba(14, 65, 77, .075);
}
.workspace-shell--dashboard-visitor .dashboard-activity-table thead th {
    color: #176d77;
    background: linear-gradient(100deg, #e8f8f5, #eef5fb);
    border-bottom-color: rgba(20, 112, 126, .14);
}
.workspace-shell--dashboard-visitor .dashboard-activity-table tbody td {
    border-color: rgba(20, 112, 126, .09);
}
.workspace-shell--dashboard-visitor .dashboard-activity-table tbody tr:hover { background: #effaf8; }
.workspace-shell--dashboard-visitor .dashboard-activity-table .dashboard-quantity-cell {
    color: #126d78;
    font-weight: 800;
}
.workspace-shell--dashboard-visitor .dashboard-activity-table .text-danger { color: #d65067 !important; }
.workspace-shell--dashboard-visitor .dashboard-activity-table .text-link { color: #118e91; }
.workspace-shell--dashboard-visitor .dashboard-complete-button {
    color: #fff;
    background: linear-gradient(115deg, #18a98f, #138caa);
    border: 0;
    box-shadow: 0 5px 13px rgba(19, 143, 145, .2);
}
.workspace-shell--dashboard-visitor .dashboard-complete-button:hover {
    background: linear-gradient(115deg, #138f7b, #117a98);
    box-shadow: 0 8px 18px rgba(19, 143, 145, .28);
}
@media (prefers-reduced-motion: reduce) {
    .workspace-shell--dashboard-visitor .db-stat,
    .workspace-shell--dashboard-visitor .db-cta,
    .workspace-shell--dashboard-visitor .dashboard-complete-button { transition: none; }
}
@keyframes dashboard-arrive { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
@media (max-width: 767.98px) {
    .workspace-shell--dashboard { padding-top: 20px; }
    .workspace-shell--dashboard .db-hero { min-height: 0; }
    .workspace-shell--dashboard .db-hero__content { min-height: 0; gap: 18px; padding: 25px 21px; }
    .workspace-shell--dashboard[data-dashboard-role="administrator"] .db-hero__scene .db-admin-port-scene { width: 82%; height: 132px; opacity: .38; }
    .visitor-dashboard-media__grid { grid-template-columns: minmax(0, 1fr); }
    .visitor-dashboard-video video { aspect-ratio: 16 / 9; }
    .visitor-dashboard-image { min-height: 240px; }
    .visitor-dashboard-image img { max-height: 360px; }
    .workspace-shell--dashboard-visitor .db-hero__content { padding-bottom: 78px; }
    .workspace-shell--dashboard-visitor .db-hero__scene svg { width: 82%; height: 94px; }
    .workspace-shell--dashboard-visitor .db-museum-sign { display: none; }
    .workspace-shell--dashboard .db-hero__title { font-size: 2rem; }
    .workspace-shell--dashboard .db-hero__right { justify-content: space-between; }
    .workspace-shell--dashboard .db-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .workspace-shell--dashboard .db-stat { min-height: 132px; padding: 17px 15px 15px; }
    .workspace-shell--dashboard .db-stat__value { font-size: 1.55rem; }
    .workspace-shell--dashboard .db-stat__index { top: 14px; right: 13px; }
    .workspace-shell--dashboard-visitor .db-stat__index { top: 14px; right: 13px; }
    .workspace-shell--dashboard .dashboard-insight-grid { margin-bottom: 32px !important; }
    .workspace-shell--dashboard .dashboard-note { min-height: 230px; }
    .workspace-shell--dashboard .dashboard-admin-charts { grid-template-columns: 1fr; }
    .workspace-shell--dashboard .dashboard-admin-charts .workspace-chart-card:last-child { grid-column: auto; }
    .workspace-shell--dashboard .dashboard-chart-row { grid-template-columns: minmax(90px, 125px) minmax(0, 1fr) 48px; gap: 8px; }
    .admin-dashboard-shortcuts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .workspace-shell--dashboard .db-stats { grid-template-columns: minmax(0, 1fr); }
    .workspace-shell--dashboard .db-stat { min-height: 118px; }
    .admin-dashboard-shortcuts__grid { grid-template-columns: minmax(0, 1fr); }
    .visitor-dashboard-media { padding: 19px 15px; }
    .visitor-dashboard-media__index { font-size: .48rem; }
    .workspace-shell--dashboard .db-hero__right { align-items: flex-start; flex-direction: column; }
    .workspace-shell--dashboard .db-cta { width: 100%; justify-content: space-between; }
    .workspace-shell--dashboard .workspace-chart-card { padding: 18px 15px; }
    .workspace-shell--dashboard-visitor .db-hero__scene svg { display: block; width: 100%; height: 88px; opacity: .58; }
}
@media (prefers-reduced-motion: reduce) {
    .workspace-shell--dashboard *,
    .workspace-shell--dashboard *::before,
    .workspace-shell--dashboard *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
    .workspace-shell--dashboard .db-stat:hover { translate: none; }
    .workspace-shell--dashboard-visitor .db-visitor-wordmark span { opacity: 1; animation: none; }
    .workspace-shell--dashboard-visitor .db-port-wake,
    .workspace-shell--dashboard-visitor .db-containers,
    .workspace-shell--dashboard-visitor .db-reach-stacker { animation: none; }
}

.program-form-shell {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 88% 6%, rgba(47,143,150,.12), transparent 34%),
        radial-gradient(ellipse at 8% 52%, rgba(229,109,79,.07), transparent 32%),
        #f2f6f6;
}
.program-form-shell::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image: linear-gradient(rgba(12,66,76,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(12,66,76,.035) 1px, transparent 1px);
    background-size: 36px 36px;
    content: '';
    mask-image: linear-gradient(to bottom, #000, transparent 82%);
    pointer-events: none;
}
.program-form-shell > .container-xl { position: relative; z-index: 1; }
.program-form-heading {
    align-items: center;
    gap: 24px;
    margin-bottom: 24px;
    padding: 28px 32px;
    background: linear-gradient(112deg, rgba(255,255,255,.96), rgba(239,249,247,.94) 72%, rgba(255,248,239,.94));
    border: 1px solid rgba(24,76,83,.1);
    border-radius: 14px;
    box-shadow: 0 14px 36px rgba(8,35,45,.055);
}
.program-form-heading .eyebrow { margin-bottom: 10px; color: #238b8e; }
.program-form-heading h1 {
    margin: 0 0 8px;
    color: #102f38;
    font: 800 clamp(1.8rem, 3.1vw, 2.7rem)/1.1 'Manrope', sans-serif;
    letter-spacing: -.055em;
}
.program-form-heading p { margin: 0; color: #61767b; font-size: .9rem; }
.program-form-heading .btn-outline-ink {
    flex-shrink: 0;
    border-radius: 8px;
    border-color: rgba(16,47,56,.2);
    font-size: .8rem;
    font-weight: 700;
}
.program-form-card {
    padding: 0;
    overflow: hidden;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(19,47,61,.1);
    border-radius: 14px;
    box-shadow: 0 24px 56px rgba(8,35,45,.08);
}
.program-form-card__header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 154px;
    padding: 28px 36px;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(112deg, #092c37, #104e59 70%, #176b70);
}
.program-form-card__header::after {
    position: absolute;
    top: -92px;
    right: 15%;
    width: 290px;
    height: 290px;
    border: 1px solid rgba(134,228,218,.19);
    border-radius: 50%;
    box-shadow: 0 0 0 26px rgba(134,228,218,.035), 0 0 0 54px rgba(134,228,218,.025);
    content: '';
    pointer-events: none;
}
.program-form-card__header > div,
.program-form-card__signal { position: relative; z-index: 1; }
.program-form-card__kicker {
    display: block;
    margin-bottom: 9px;
    color: #82d7cc;
    font: 500 .64rem 'DM Mono', monospace;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.program-form-card__header h2 {
    margin: 0 0 6px;
    color: #fff;
    font: 700 clamp(1.25rem, 2vw, 1.65rem)/1.2 'Manrope', sans-serif;
    letter-spacing: -.035em;
}
.program-form-card__header p { margin: 0; color: rgba(233,248,247,.68); font-size: .8rem; }
.program-form-card__signal {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    flex-shrink: 0;
    padding: 9px 13px;
    color: #d3f7ec;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(184,238,228,.19);
    border-radius: 99px;
    font: 500 .62rem 'DM Mono', monospace;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.program-form-card__signal span { width: 7px; height: 7px; border-radius: 50%; background: #66e0ae; box-shadow: 0 0 12px rgba(102,224,174,.8); }
.program-form-card form { padding: 32px 36px 28px; }
.program-form-card .form-label {
    margin-bottom: 8px;
    color: #26464e;
    font: 700 .68rem 'DM Mono', monospace;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.program-form-card .form-control,
.program-form-card .form-select {
    min-height: 48px;
    color: #18333b;
    background-color: #fbfdfd;
    border: 1px solid #dce7e7;
    border-radius: 8px;
    font-size: .85rem;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.program-form-card .form-control:focus,
.program-form-card .form-select:focus {
    background-color: #fff;
    border-color: #42a9a5;
    box-shadow: 0 0 0 4px rgba(47,143,150,.12);
}
.program-form-card .form-text,
.program-form-hint { color: #718489; font-size: .72rem; }
.program-form-hint { margin: -2px 0 11px; }
.program-form-card .program-description-editor { min-height: 200px; }
.program-form-card .tox.tox-tinymce {
    overflow: hidden;
    border: 1px solid #dce7e7;
    border-radius: 8px;
    box-shadow: none;
}
.program-form-card .tox .tox-editor-header,
.program-form-card .tox .tox-toolbar-overlord,
.program-form-card .tox .tox-toolbar__primary { background: #f6fafa; }
.program-form-card .tox .tox-edit-area::before { border-color: #42a9a5; }
.program-form-image-preview { margin-top: 14px; }
.program-form-image-preview img {
    display: block;
    max-width: min(100%, 320px);
    max-height: 220px;
    border: 1px solid #dce7e7;
    border-radius: 9px;
    object-fit: cover;
}
.program-form-card .form-check { color: #526a70; font-size: .8rem; }
.program-form-card .form-check-input:checked { background-color: #278d8e; border-color: #278d8e; }
.program-form-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid #e8eeee;
}
.program-form-actions > span { color: #829296; font-size: .72rem; }
.program-form-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 48px;
    padding: 0 20px;
    border-radius: 8px;
    font-size: .8rem;
}
.program-form-actions .btn span { font-size: 1rem; transition: transform .2s ease; }
.program-form-actions .btn:hover span { transform: translateX(3px); }
@media (max-width: 767.98px) {
    .program-form-heading { align-items: flex-start; flex-direction: column; padding: 23px; }
    .program-form-heading .btn-outline-ink { align-self: flex-start; }
    .program-form-card__header { align-items: flex-start; flex-direction: column; padding: 25px 23px; }
    .program-form-card__signal { align-self: flex-start; }
    .program-form-card form { padding: 24px 22px; }
}
@media (max-width: 480px) {
    .program-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .program-form-actions .btn { width: 100%; }
    .program-form-actions > span { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    .program-form-card *,
    .program-form-card *::before,
    .program-form-card *::after { transition-duration: .01ms !important; }
}
.program-rich-text { color: inherit; line-height: 1.65; overflow-wrap: anywhere; }
.program-rich-text > :first-child { margin-top: 0; }
.program-rich-text > :last-child { margin-bottom: 0; }
.program-rich-text p { margin: 0 0 .75em; }
.program-rich-text h1,
.program-rich-text h2,
.program-rich-text h3,
.program-rich-text h4,
.program-rich-text h5,
.program-rich-text h6 { margin: .8em 0 .35em; color: inherit; font: 700 1em/1.35 'Manrope', sans-serif; }
.program-rich-text ul,
.program-rich-text ol { margin: .35em 0 .75em; padding-left: 1.4em; }
.program-rich-text blockquote { margin: .75em 0; padding-left: 1em; border-left: 3px solid var(--coral); }
.program-rich-text table { width: 100%; margin: .75em 0; border-collapse: collapse; }
.program-rich-text th,
.program-rich-text td { padding: .4em .55em; border: 1px solid rgba(19,47,61,.16); text-align: left; }
.program-rich-text pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; }
.program-rich-text a { color: var(--coral-dark); text-decoration: underline; text-underline-offset: 2px; }
.program-rich-text--summary { max-height: 4.8em; overflow: hidden; color: var(--ink-soft); font-size: .72rem; line-height: 1.55; }
.program-rich-text--summary p { margin-bottom: .35em; }
.program-rich-text--summary ul,
.program-rich-text--summary ol,
.program-rich-text--summary table,
.program-rich-text--summary blockquote { margin-top: .25em; margin-bottom: .35em; }
.program-description.program-rich-text { max-height: 9em; overflow: hidden; }
.home-program__desc.program-rich-text { max-height: 8em; flex: 1; margin: 0 0 18px; overflow: hidden; color: rgba(255,255,255,.72); font-size: .84rem; line-height: 1.6; }
.home-program__desc.program-rich-text p { margin: 0 0 .6em; }

/* Program detail dashboard */
.program-detail-shell {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(ellipse at 90% 8%, rgba(47,143,150,.11), transparent 29%),
        radial-gradient(ellipse at 2% 44%, rgba(229,109,79,.07), transparent 25%),
        linear-gradient(180deg, #f8faf9 0%, #eff5f3 100%);
}
.program-detail-shell .workspace-content > * { animation: visitor-rise .5s cubic-bezier(.2,.75,.25,1) both; }
.program-detail-shell .workspace-content > *:nth-child(2) { animation-delay: .06s; }
.program-detail-shell .workspace-content > *:nth-child(3) { animation-delay: .12s; }
.program-detail-shell .workspace-heading.program-detail-hero {
    position: relative;
    align-items: flex-end;
    gap: 26px;
    min-height: 220px;
    margin-bottom: 24px;
    padding: clamp(26px, 4vw, 46px);
    overflow: hidden;
    color: #fff;
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 15px),
        radial-gradient(circle at 84% 25%, rgba(66,190,187,.25), transparent 23%),
        linear-gradient(118deg, #071e29 0%, #0d3946 58%, #17626a 100%);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    box-shadow: 0 22px 52px rgba(8,35,45,.18);
}
.program-detail-hero::before {
    position: absolute;
    top: 0;
    left: 36px;
    width: 96px;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, var(--coral), var(--sun));
    box-shadow: 0 0 20px rgba(229,109,79,.65);
}
.program-detail-hero::after {
    position: absolute;
    top: -115px;
    right: 10%;
    width: 300px;
    height: 300px;
    content: '';
    border: 1px solid rgba(189,239,232,.15);
    border-radius: 50%;
    box-shadow: 0 0 0 30px rgba(189,239,232,.035), 0 0 0 62px rgba(189,239,232,.025);
    pointer-events: none;
}
.program-detail-hero > div { position: relative; z-index: 1; }
.program-detail-hero .eyebrow { margin-bottom: 12px; color: var(--sun); }
.program-detail-hero h1 {
    max-width: 740px;
    margin: 0 0 9px;
    color: #fff;
    font: 700 clamp(2.15rem, 4.4vw, 3.65rem)/1.04 'Playfair Display', serif;
    letter-spacing: -.04em;
    text-wrap: balance;
}
.program-detail-hero p { max-width: 590px; margin: 0; color: rgba(232,246,244,.72); font-size: .9rem; }
.program-detail-hero .btn { min-height: 42px; padding: .7rem 1rem; border-radius: 8px; }
.program-detail-hero .btn-outline-ink { color: #fff; border-color: rgba(255,255,255,.38); background: rgba(255,255,255,.07); }
.program-detail-hero .btn-outline-ink:hover { color: var(--deep); background: #fff; }
.program-detail-hero .btn-outline-danger { color: #ffd5ca; border-color: rgba(255,170,148,.52); border-radius: 8px; }
.program-detail-hero .btn-outline-danger:hover { color: #fff; background: rgba(229,109,79,.2); }
.program-detail-shell .alert { border: 0; border-radius: 10px; box-shadow: 0 8px 24px rgba(8,35,45,.06); }
.program-overview-card,
.program-section-card {
    position: relative;
    padding: clamp(20px, 2.4vw, 30px);
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(19,47,61,.09);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(8,35,45,.055);
}
.program-overview-card { overflow: hidden; }
.program-overview-layout { min-width: 0; }
.program-overview-layout > div { min-width: 0; }
.program-overview-card::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 126px;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, transparent, #36a5a4);
}
.program-overview-card .eyebrow { margin-bottom: 10px; }
.program-overview-image {
    display: block;
    width: 100%;
    max-height: 300px;
    min-height: 210px;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,.65);
    border-radius: 11px;
    box-shadow: 0 12px 30px rgba(8,35,45,.15);
}
.program-overview-card .program-rich-text { color: var(--ink-soft); font-size: .9rem; }
.program-detail-stats { --bs-gutter-x: 14px; --bs-gutter-y: 14px; }
.program-stat-card {
    position: relative;
    min-height: 128px;
    padding: 22px 22px 20px;
    overflow: hidden;
    background: linear-gradient(145deg, #fff 0%, #f6fbf9 100%);
    border: 1px solid rgba(19,47,61,.085);
    border-radius: 12px;
    box-shadow: 0 10px 26px rgba(8,35,45,.05);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.program-stat-card:hover { transform: translateY(-3px); border-color: rgba(47,143,150,.3); box-shadow: 0 16px 32px rgba(8,35,45,.1); }
.program-stat-card::before {
    position: absolute;
    top: 0;
    left: 20px;
    width: 34px;
    height: 3px;
    content: '';
    background: linear-gradient(90deg, var(--coral), #37a7a2);
    border-radius: 0 0 4px 4px;
}
.program-stat-card small {
    color: var(--ink-soft) !important;
    font: 700 .65rem 'DM Mono', monospace;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.program-stat-card .dashboard-number { margin-top: 9px !important; color: var(--ink); font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.15; }
.program-section-card { margin-bottom: 22px; }
.program-section-card:last-child { margin-bottom: 0; }
.program-section-card .workspace-section-title { color: var(--deep); font-size: clamp(1.35rem, 2vw, 1.65rem); letter-spacing: -.025em; }
.program-section-card .eyebrow { margin-bottom: 7px; font-size: .62rem; }
.program-section-card > .d-flex:first-child { padding-bottom: 17px; border-bottom: 1px solid rgba(19,47,61,.08); }
.program-schedules-card > .row { --bs-gutter-x: 16px; --bs-gutter-y: 16px; }
.program-schedule-day {
    height: 100%;
    padding: 18px;
    background: linear-gradient(145deg, #f5faf8 0%, #edf5f4 100%);
    border: 1px solid rgba(47,143,150,.14);
    border-radius: 12px;
}
.program-schedule-day > .d-flex:first-child { align-items: flex-start !important; }
.program-schedule-day .small.text-muted { color: #6b8288 !important; font-size: .67rem; }
.program-schedule-day h3 { margin-top: 3px !important; color: var(--deep); font: 700 1.12rem 'Playfair Display', serif; }
.program-schedule-session {
    height: 100%;
    padding: 15px;
    background: #fff;
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 10px;
    box-shadow: 0 6px 16px rgba(8,35,45,.045);
}
.program-schedule-session .fw-semibold { color: var(--ink); font-size: .86rem; }
.program-schedule-session .btn { border-radius: 7px; }
.program-detail-shell .status-pill { border-radius: 99px; }
.program-participants-card [data-participant-date] {
    padding: .52rem .78rem;
    border-radius: 99px;
    font-size: .72rem;
    transition: transform .18s ease, box-shadow .18s ease;
}
.program-participants-card [data-participant-date]:hover { transform: translateY(-2px); }
.program-participants-card [data-participant-date].btn-coral { box-shadow: 0 7px 18px rgba(229,109,79,.22); }
.program-detail-shell .table-shell {
    overflow: hidden;
    border: 1px solid rgba(19,47,61,.08);
    border-radius: 10px;
}
.program-detail-shell .table-responsive { border-radius: inherit; }
.program-detail-shell .workspace-table { margin-bottom: 0; }
.program-detail-shell .workspace-table thead th {
    padding: 13px 14px;
    color: #557078;
    background: #f3f8f7;
    border-bottom: 1px solid rgba(19,47,61,.1);
    font: 700 .62rem 'DM Mono', monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}
.program-detail-shell .workspace-table tbody td { padding: 13px 14px; border-color: rgba(19,47,61,.065); vertical-align: middle; }
.program-detail-shell .workspace-table tbody tr { transition: background-color .16s ease; }
.program-detail-shell .workspace-table tbody tr:hover { background: #f7fbfa; }
.program-detail-shell .dataTable-wrapper .dataTable-top,
.program-detail-shell .dataTable-wrapper .dataTable-bottom { padding: 14px 0; }
.program-detail-shell .dt-container { padding: 14px 0 0; }
.program-detail-shell .dt-layout-row { align-items: center; gap: 12px; }
.program-detail-shell .dt-search input,
.program-detail-shell .dt-length select {
    padding: .5rem .7rem;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 7px;
}
.program-detail-shell .dt-search input:focus,
.program-detail-shell .dt-length select:focus { border-color: #2f8f96; outline: 3px solid rgba(47,143,150,.12); }
.program-detail-shell .dt-paging-button { border-radius: 6px !important; }
.program-detail-shell .program-repair-card .btn { border-radius: 7px; white-space: nowrap; }
.program-detail-shell .program-participants-card [data-participant-date] {
    color: #3c6570;
    background: rgba(47,143,150,.055);
    border-color: rgba(47,143,150,.2);
}
.program-detail-shell .program-participants-card [data-participant-date].btn-coral {
    color: #fff;
    background: linear-gradient(120deg, #167c83, #34a8a0);
    border-color: transparent;
    box-shadow: 0 7px 18px rgba(25,132,135,.24);
}
.program-section-card .workspace-section-title {
    display: flex;
    align-items: center;
    gap: 11px;
}
.program-section-icon {
    display: inline-grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 11px;
}
.program-section-icon svg { width: 21px; height: 21px; }
.program-section-icon--sea {
    color: #1e9290;
    background: linear-gradient(145deg, #e1f7f2, #effaf7);
    border-color: rgba(47,143,150,.16);
    box-shadow: inset 0 1px rgba(255,255,255,.9), 0 6px 15px rgba(47,143,150,.1);
}
.program-section-icon--coral {
    color: #ed795e;
    background: linear-gradient(145deg, #fff0e9, #fff8f3);
    border-color: rgba(229,109,79,.16);
    box-shadow: inset 0 1px rgba(255,255,255,.9), 0 6px 15px rgba(229,109,79,.1);
}
.program-detail-shell .program-participants-card .table-shell,
.program-detail-shell .program-repair-card .table-shell {
    overflow-x: auto;
    overflow-y: hidden;
    border-color: rgba(36,112,119,.16);
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(8,35,45,.055), 0 1px 0 rgba(255,255,255,.9) inset;
}
.program-detail-shell .program-participants-card .workspace-table,
.program-detail-shell .program-repair-card .workspace-table { min-width: 760px; }
.program-detail-shell .program-participants-card .workspace-table thead th,
.program-detail-shell .program-repair-card .workspace-table thead th {
    position: relative;
    padding: 15px 14px;
    color: #d7eeeb;
    background:
        linear-gradient(115deg, rgba(38,166,158,.14), transparent 42%),
        linear-gradient(120deg, #102e3b, #174550 72%, #20656a);
    border-bottom: 1px solid rgba(91,203,190,.28);
    font-size: .61rem;
    letter-spacing: .1em;
}
.program-detail-shell .program-participants-card .workspace-table thead th:first-child,
.program-detail-shell .program-repair-card .workspace-table thead th:first-child { border-radius: 10px 0 0; }
.program-detail-shell .program-participants-card .workspace-table thead th:last-child,
.program-detail-shell .program-repair-card .workspace-table thead th:last-child { border-radius: 0 10px 0 0; }
.program-table-heading-icon {
    display: inline-flex;
    width: 16px;
    height: 16px;
    margin-right: 7px;
    color: #65c9bd;
    vertical-align: -4px;
}
.program-table-heading-icon svg { width: 100%; height: 100%; }
.program-detail-shell .program-participants-card .workspace-table tbody tr,
.program-detail-shell .program-repair-card .workspace-table tbody tr {
    background: linear-gradient(105deg, #fff 0%, #fcfefd 100%);
    transition: background .2s ease, box-shadow .2s ease;
}
.program-detail-shell .program-participants-card .workspace-table tbody tr:nth-child(even),
.program-detail-shell .program-repair-card .workspace-table tbody tr:nth-child(even) { background: #f7fbfa; }
.program-detail-shell .program-participants-card .workspace-table tbody tr:hover,
.program-detail-shell .program-repair-card .workspace-table tbody tr:hover {
    background: linear-gradient(100deg, #eef9f6, #f7fbff);
    box-shadow: inset 3px 0 #39a99e;
}
.program-detail-shell .program-participants-card .workspace-table tbody td,
.program-detail-shell .program-repair-card .workspace-table tbody td {
    padding-top: 15px;
    padding-bottom: 15px;
    border-bottom-color: rgba(27,75,83,.075);
}
.program-detail-shell .program-participants-card .workspace-table tbody td:first-child,
.program-detail-shell .program-repair-card .workspace-table tbody td:first-child {
    color: #57828a;
    font: 500 .7rem 'DM Mono', monospace;
}
.program-detail-shell .program-repair-card .workspace-table tbody td:nth-child(2) a {
    color: #df684e;
    text-decoration: none;
    text-underline-offset: 4px;
}
.program-detail-shell .program-repair-card .workspace-table tbody td:nth-child(2) a:hover {
    color: #a83c31;
    text-decoration: underline;
}
.program-repair-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 36px;
    padding-inline: 12px;
    background: linear-gradient(125deg, #f07859, #e55f50);
    box-shadow: 0 5px 14px rgba(229,109,79,.19);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.program-repair-action svg { width: 15px; height: 15px; }
.program-repair-action:hover { transform: translateY(-2px); filter: saturate(1.12); box-shadow: 0 8px 18px rgba(229,109,79,.3); }
.program-icon-action {
    display: inline-grid;
    width: 36px;
    height: 36px;
    padding: 0;
    place-items: center;
    color: #317c83;
    background: #f4fbfa;
    border-color: rgba(47,143,150,.23);
    box-shadow: 0 3px 9px rgba(8,35,45,.045);
    transition: transform .18s ease, color .18s ease, background .18s ease, box-shadow .18s ease;
}
.program-icon-action svg { width: 17px; height: 17px; }
.program-icon-action--mail:hover {
    color: #fff;
    background: linear-gradient(135deg, #238f91, #42b6a8);
    border-color: transparent;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(35,143,145,.25);
}
.program-icon-action--delete { color: #c62828; background: #fff3f2; border-color: rgba(198,40,40,.26); }
.program-icon-action--delete:hover {
    color: #fff;
    background: linear-gradient(135deg, #e04444, #bd2026);
    border-color: transparent;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(217,77,77,.24);
}
.program-icon-action:focus-visible,
.program-repair-action:focus-visible {
    outline: 3px solid rgba(47,143,150,.3);
    outline-offset: 2px;
}
.program-detail-shell .program-participants-card .dt-container,
.program-detail-shell .program-repair-card .dt-container { padding: 12px; }
.program-detail-shell .program-participants-card .dt-info,
.program-detail-shell .program-repair-card .dt-info {
    color: #527078;
    font-size: .72rem;
}
.program-detail-shell .program-participants-card .dt-paging-button,
.program-detail-shell .program-repair-card .dt-paging-button {
    margin: 0 2px;
    color: #355963 !important;
    background: #f4f9f8 !important;
    border: 1px solid rgba(47,143,150,.13) !important;
    transition: color .16s ease, background .16s ease, transform .16s ease;
}
.program-detail-shell .program-participants-card .dt-paging-button:hover,
.program-detail-shell .program-repair-card .dt-paging-button:hover {
    color: #fff !important;
    background: #267f83 !important;
    transform: translateY(-1px);
}
.program-detail-shell .program-participants-card .dt-paging-button.current,
.program-detail-shell .program-repair-card .dt-paging-button.current {
    color: #fff !important;
    background: linear-gradient(135deg, #1c7e83, #38a99e) !important;
    border-color: transparent !important;
    box-shadow: 0 4px 12px rgba(35,143,145,.2);
}
.program-schedule-modal .modal-content { overflow: hidden; border: 1px solid rgba(255,255,255,.75); border-radius: 14px; box-shadow: 0 24px 70px rgba(8,35,45,.25); }
.program-schedule-modal .modal-header { color: #fff; background: linear-gradient(115deg, #08232d, #17626a); border-bottom: 0; }
.program-schedule-modal .modal-title { font: 700 1.2rem 'Playfair Display', serif; }
.program-schedule-modal .btn-close { filter: invert(1); }
.program-schedule-modal .modal-footer { background: #f7faf9; border-top: 1px solid var(--line); }
@media (max-width: 767px) {
    .program-overview-layout { grid-template-columns: minmax(0, 1fr) !important; }
    .program-detail-shell .workspace-heading.program-detail-hero { align-items: flex-start; flex-direction: column; min-height: 0; padding: 28px 22px; }
    .program-detail-hero::before { left: 22px; }
    .program-detail-hero::after { right: -195px; opacity: .65; }
    .program-detail-hero h1 { font-size: clamp(2rem, 9vw, 2.8rem); }
    .program-detail-hero > div:last-child { width: 100%; }
    .program-detail-hero > div:last-child .btn,
    .program-detail-hero > div:last-child form { flex: 1 1 auto; }
    .program-detail-hero > div:last-child form .btn { width: 100%; }
    .program-overview-card,
    .program-section-card { padding: 18px; border-radius: 12px; }
    .program-detail-shell .dt-layout-row { align-items: stretch; }
    .program-detail-shell .dt-search,
    .program-detail-shell .dt-search input { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .program-detail-shell .workspace-content > *,
    .program-detail-shell *,
    .program-detail-shell *::before,
    .program-detail-shell *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.workspace-shell--visitor-program-detail { background: radial-gradient(ellipse at 90% 4%,rgba(62,166,159,.1),transparent 30%),linear-gradient(180deg,#f8faf8 0%,var(--mist) 52%,#edf4f2 100%); }
.workspace-shell--visitor-program-detail .workspace-content { gap: 22px; }
.visitor-program-detail-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 270px;
    padding: 34px clamp(24px,4vw,52px);
    padding-right: clamp(280px,36vw,430px);
    overflow: hidden;
    color: #fff;
    background: radial-gradient(ellipse at 78% 14%,rgba(67,221,192,.2),transparent 35%),repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px),linear-gradient(118deg,#092735,#0d4b58 66%,#107b79);
    border: 1px solid rgba(132,244,222,.18);
    border-radius: 14px;
    box-shadow: 0 22px 48px rgba(8,35,45,.16);
    isolation: isolate;
}
.visitor-program-detail-hero::before { position: absolute; z-index: -1; inset: 0; content: ''; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(90deg,#000,transparent 85%); }
.visitor-program-detail-hero::after { position: absolute; z-index: -1; right: 16%; bottom: -175px; width: 380px; height: 250px; content: ''; background: rgba(93,235,203,.14); border-radius: 50%; filter: blur(50px); }
.visitor-program-detail-hero__copy { position: relative; z-index: 2; max-width: 620px; }
.visitor-program-detail-hero__eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #9af0dc; font: 700 .64rem 'DM Mono',monospace; letter-spacing: .12em; text-transform: uppercase; }
.visitor-program-detail-hero__eyebrow > span { width: 7px; height: 7px; background: #68eeb6; border-radius: 50%; box-shadow: 0 0 0 4px rgba(104,238,182,.13),0 0 14px rgba(104,238,182,.7); }
.visitor-program-detail-hero h1 { max-width: 620px; margin: 15px 0 8px; color: #fff; font: 700 clamp(2rem,4vw,3rem)/1.08 'Playfair Display',serif; letter-spacing: -.04em; text-wrap: balance; }
.visitor-program-detail-hero p { max-width: 500px; margin: 0; color: rgba(236,255,250,.75); font-size: .86rem; }
.visitor-program-detail-back { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; padding: 9px 12px; color: #d6fff2; background: rgba(154,240,220,.1); border: 1px solid rgba(154,240,220,.24); border-radius: 7px; font-size: .7rem; font-weight: 800; transition: color .2s ease,background .2s ease,transform .2s ease; }
.visitor-program-detail-back:hover { color: #103c46; background: #b0f2df; transform: translateY(-2px); }
.visitor-program-route { position: absolute; top: 50%; right: 3%; z-index: 1; width: clamp(280px,36vw,420px); transform: translateY(-50%); }
.visitor-program-route > svg { position: relative; z-index: 1; display: block; width: 100%; overflow: visible; filter: drop-shadow(0 12px 18px rgba(2,19,30,.25)); }
.visitor-program-route__orbit { position: absolute; top: 50%; left: 50%; width: 106%; height: 75%; border: 1px solid rgba(150,246,226,.2); border-radius: 50%; }
.visitor-program-route__orbit--one { transform: translate(-50%,-50%) rotate(-18deg); animation: visitor-program-orbit 18s linear infinite; }
.visitor-program-route__orbit--two { width: 91%; height: 95%; border-color: rgba(242,198,109,.16); transform: translate(-50%,-50%) rotate(27deg); animation: visitor-program-orbit 24s linear infinite reverse; }
.visitor-program-route__road { stroke: rgba(185,246,228,.34); stroke-width: 3; }
.visitor-program-route__road-mark { stroke: rgba(255,211,137,.7); stroke-linecap: round; stroke-width: 2; stroke-dasharray: 11 11; animation: visitor-program-road 1.5s linear infinite; }
.visitor-program-notes { transform-origin: 88px 100px; animation: visitor-program-notes-float 4.4s ease-in-out infinite; }
.visitor-program-notes__shadow { fill: rgba(2,18,29,.3); transform: translate(5px,6px); }
.visitor-program-notes__page { fill: rgba(237,255,248,.97); stroke: #a3f3de; stroke-width: 1.5; }
.visitor-program-notes__clip { fill: none; stroke: #ffc982; stroke-linecap: round; stroke-width: 5; }
.visitor-program-notes__checks { fill: none; stroke: #1caa92; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; stroke-dasharray: 20; animation: visitor-program-check 4.4s ease-in-out infinite; }
.visitor-program-notes__lines { fill: none; stroke: #8ca9a6; stroke-linecap: round; stroke-width: 2; stroke-dasharray: 48; animation: visitor-program-lines 3s ease-in-out infinite alternate; }
.visitor-program-notes__spark { fill: #ffd27e; filter: drop-shadow(0 0 6px rgba(255,210,126,.8)); transform-origin: 125px 145px; animation: visitor-program-spark 2.6s ease-in-out infinite; }
.visitor-program-destination > path:first-child { fill: none; stroke: #b8f4df; stroke-linecap: round; stroke-width: 3; }
.visitor-program-destination__flag { fill: #ffcf89; stroke: #fff0c5; stroke-width: 1; }
.visitor-program-destination text { fill: #123f49; font: 700 7px 'DM Mono',monospace; letter-spacing: .5px; }
.visitor-program-wind { fill: none; stroke: #a4f6e0; stroke-linecap: round; stroke-width: 2; stroke-dasharray: 12 7; animation: visitor-program-wind 1.2s linear infinite; }
.visitor-program-car { transform-origin: 225px 155px; animation: visitor-program-drive 5.4s ease-in-out infinite; }
.visitor-program-car__body { fill: #f3a66c; stroke: #ffe0ae; stroke-linejoin: round; stroke-width: 1.5; }
.visitor-program-car__window { fill: #dff9f0; stroke: #b9f5e5; stroke-width: 1.5; }
.visitor-program-car__wheel { fill: #123a46; stroke: #a4f6e0; stroke-width: 2; }
.visitor-program-motorcycle { transform-origin: 290px 160px; animation: visitor-program-ride 4.5s 1s ease-in-out infinite; }
.visitor-program-motorcycle__wheel { fill: #123a46; stroke: #a4f6e0; stroke-width: 2; }
.visitor-program-motorcycle__frame { fill: none; stroke: #ffcf89; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.visitor-program-motorcycle__rider { fill: #f3a66c; stroke: #ffe0ae; stroke-width: 1.5; }
.visitor-program-route__star { fill: #ffd27e; filter: drop-shadow(0 0 5px rgba(255,210,126,.8)); animation: visitor-program-star 2.4s ease-in-out infinite alternate; }
.visitor-program-route__star--two { animation-delay: .8s; }
.visitor-program-route__caption { position: absolute; right: 0; bottom: -3px; color: rgba(184,241,223,.62); font: 600 .45rem 'DM Mono',monospace; letter-spacing: .12em; }
.visitor-program-detail-overview > [class*="col-"] { display: flex; }
.visitor-program-detail-image { position: relative; width: 100%; min-height: 320px; overflow: hidden; background: linear-gradient(135deg,#103c49,#248c83); border: 1px solid rgba(24,79,89,.1); border-radius: 13px; box-shadow: 0 14px 32px rgba(8,35,45,.09); }
.visitor-program-detail-image::after { position: absolute; inset: 0; content: ''; background: linear-gradient(180deg,transparent 52%,rgba(7,33,43,.55)); pointer-events: none; }
.visitor-program-detail-image img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; transition: transform .55s ease; }
.visitor-program-detail-image:hover img { transform: scale(1.04); }
.visitor-program-detail-image > span { position: absolute; bottom: 16px; left: 17px; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 8px 11px; color: #164651; background: rgba(247,255,251,.94); border: 1px solid rgba(255,255,255,.68); border-radius: 99px; font: 700 .61rem 'DM Mono',monospace; letter-spacing: .04em; text-transform: uppercase; }
.visitor-program-detail-info { width: 100%; padding: clamp(24px,3vw,36px); background: linear-gradient(145deg,#fff,#f7fbfa); border: 1px solid rgba(24,79,89,.1); border-radius: 13px; box-shadow: 0 14px 32px rgba(8,35,45,.065); }
.visitor-program-detail-info__eyebrow { display: inline-flex; align-items: center; gap: 7px; color: #25877f; font: 700 .6rem 'DM Mono',monospace; letter-spacing: .09em; text-transform: uppercase; }
.visitor-program-detail-info__eyebrow i { color: #d19b37; }
.visitor-program-detail-info h2 { margin: 9px 0 0; color: #163b45; font: 700 clamp(1.5rem,2.5vw,2rem)/1.15 'Playfair Display',serif; }
.visitor-program-detail-description { margin-top: 15px; color: #586f74; font-size: .86rem; }
.visitor-program-detail-price { display: flex; align-items: baseline; gap: 8px; margin-top: 20px; padding: 14px 15px; background: linear-gradient(135deg,#fff7e4,#fffaf0); border: 1px solid #f3e7c8; border-radius: 10px; }
.visitor-program-detail-price span { display: inline-flex; align-items: center; gap: 6px; margin-right: auto; color: #7c7562; font-size: .69rem; font-weight: 700; }
.visitor-program-detail-price span i { color: #c78b2d; }
.visitor-program-detail-price strong { color: #b85b43; font-size: 1.1rem; }
.visitor-program-detail-price small { color: #8b8270; font-size: .67rem; }
.visitor-program-schedule { padding: clamp(20px,3vw,30px); background: linear-gradient(145deg,#fff,#f9fcfb); border: 1px solid rgba(24,79,89,.1); border-radius: 13px; box-shadow: 0 14px 32px rgba(8,35,45,.065); }
.visitor-program-schedule__heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #e7efec; }
.visitor-program-schedule__heading h2 { margin: 5px 0 0; color: #163b45; font: 700 1.45rem 'Playfair Display',serif; }
.visitor-program-schedule__count { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding: 8px 11px; color: #17756f; background: #e7f6f1; border: 1px solid #d8eee7; border-radius: 99px; font: 700 .62rem 'DM Mono',monospace; }
.visitor-program-session { display: flex; height: 100%; flex-direction: column; justify-content: space-between; gap: 18px; padding: 17px; background: linear-gradient(145deg,#fff,#f9fcfb); border: 1px solid #e2ece8; border-radius: 11px; box-shadow: 0 7px 18px rgba(8,35,45,.045); transition: border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.visitor-program-session:hover { border-color: rgba(47,143,150,.34); box-shadow: 0 13px 24px rgba(8,35,45,.085); transform: translateY(-3px); }
.visitor-program-session__date { display: flex; align-items: flex-start; gap: 12px; }
.visitor-program-session__date > i { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; color: #177f79; background: #e3f6ef; border: 1px solid #d4eee4; border-radius: 10px; }
.visitor-program-session__date > div { display: grid; gap: 5px; }
.visitor-program-session__date strong { color: #173d47; font-size: .88rem; }
.visitor-program-session__date span { display: inline-flex; align-items: center; gap: 5px; color: #6b8288; font-size: .7rem; }
.visitor-program-session__date span i { color: #278f88; }
.visitor-program-session__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 13px; border-top: 1px solid #e9f0ed; }
.visitor-program-session__quota { display: inline-flex; align-items: center; gap: 6px; color: #267969; font-size: .69rem; font-weight: 700; }
.visitor-program-session__quota.is-full { color: #b55149; }
.visitor-program-session .btn { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding: 8px 11px; color: #fff; background: linear-gradient(135deg,#e87658,#cc5945); border: 0; border-radius: 7px; box-shadow: 0 7px 16px rgba(204,89,69,.16); font-size: .68rem; font-weight: 800; }
.visitor-program-session .btn:hover:not(:disabled) { box-shadow: 0 10px 20px rgba(204,89,69,.25); transform: translateY(-1px); }
.visitor-program-session .btn:disabled { color: #718080; background: #e8eeeb; box-shadow: none; }
.visitor-program-schedule > .empty-state { padding: 35px 20px; background: #f3f9f6; border: 1px dashed #d7e9e2; border-radius: 10px; }
@keyframes visitor-program-orbit { to { rotate: 360deg; } }
@keyframes visitor-program-road { to { stroke-dashoffset: -44; } }
@keyframes visitor-program-notes-float { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-7px) rotate(1deg); } }
@keyframes visitor-program-check { 0%,10% { stroke-dashoffset: 20; } 50%,100% { stroke-dashoffset: 0; } }
@keyframes visitor-program-lines { to { stroke-dashoffset: 48; } }
@keyframes visitor-program-spark { 0%,100% { opacity: .65; transform: scale(.8) rotate(0); } 50% { opacity: 1; transform: scale(1.12) rotate(20deg); } }
@keyframes visitor-program-wind { to { stroke-dashoffset: -38; } }
@keyframes visitor-program-drive { 0%,8% { opacity: .15; transform: translateX(-15px); } 18% { opacity: 1; } 74% { opacity: 1; transform: translateX(47px); } 88%,100% { opacity: 0; transform: translateX(58px); } }
@keyframes visitor-program-ride { 0%,8% { opacity: .12; transform: translateX(-12px); } 18% { opacity: 1; } 72% { opacity: 1; transform: translateX(25px); } 88%,100% { opacity: 0; transform: translateX(34px); } }
@keyframes visitor-program-star { to { opacity: .45; transform: scale(.7); } }
@media (max-width: 767.98px) {
    .visitor-program-detail-hero { min-height: 245px; padding: 28px 23px; }
    .visitor-program-detail-hero__copy { max-width: 72%; }
    .visitor-program-route { right: -10px; width: 300px; opacity: .78; }
    .visitor-program-route__caption { right: 10px; font-size: .38rem; }
    .visitor-program-detail-image,
    .visitor-program-detail-image img { min-height: 260px; }
}
@media (max-width: 575.98px) {
    .visitor-program-detail-hero { min-height: 230px; padding: 24px 19px; }
    .visitor-program-detail-hero__copy { max-width: 100%; }
    .visitor-program-detail-hero h1 { max-width: 70%; font-size: 2rem; }
    .visitor-program-detail-hero p { max-width: 68%; font-size: .78rem; }
    .visitor-program-detail-back { margin-top: 12px; padding: 7px 9px; font-size: .64rem; }
    .visitor-program-route { top: auto; right: -53px; bottom: -40px; width: 240px; opacity: .5; transform: none; }
    .visitor-program-route__caption { display: none; }
    .visitor-program-detail-hero__index { right: 12px; bottom: 9px; }
    .visitor-program-detail-info { padding: 22px 19px; }
    .visitor-program-detail-price { flex-wrap: wrap; }
    .visitor-program-schedule { padding: 19px 16px; }
    .visitor-program-session__footer { align-items: flex-start; flex-direction: column; }
    .visitor-program-session .btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
    .visitor-program-route *,
    .visitor-program-route *::before,
    .visitor-program-route *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.ticket-detail-page {
    --ticket-detail-ink: #102d3b;
    --ticket-detail-muted: #718891;
    --ticket-detail-line: rgba(25, 71, 87, .12);
}
.ticket-detail-page .ticket-detail-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    min-height: 218px;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    color: #fff;
    background: radial-gradient(ellipse at 80% 5%, rgba(75, 229, 206, .22), transparent 34%), linear-gradient(125deg, #0b2738, #124c5a 68%, #126d70);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 20px;
    box-shadow: 0 20px 48px rgba(8, 35, 45, .16);
}
.ticket-detail-page .ticket-detail-hero > div:not(.ticket-detail-hero-art) { position: relative; z-index: 1; }
.ticket-detail-page .ticket-detail-hero > div:first-child { max-width: min(62%, 720px); }
.ticket-detail-page .ticket-detail-hero .eyebrow { display: flex; align-items: center; gap: .55rem; color: #a4f5e7; }
.ticket-detail-live-dot { width: 8px; height: 8px; background: #63f4c9; border-radius: 50%; box-shadow: 0 0 0 5px rgba(99, 244, 201, .12), 0 0 16px #63f4c9; }
.ticket-detail-page .ticket-detail-hero h1 { color: #fff; }
.ticket-detail-page .ticket-detail-hero p { color: rgba(236, 250, 250, .76); }
.ticket-detail-page .ticket-detail-hero .btn { border-radius: 10px; font-weight: 700; transition: transform .18s ease, box-shadow .18s ease; }
.ticket-detail-page .ticket-detail-hero .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 0, 0, .18); }
.ticket-detail-page .ticket-detail-hero .btn-outline-ink { color: #d5fff5; background: rgba(9, 25, 38, .25); border-color: rgba(176, 255, 238, .35); }
.ticket-detail-page .ticket-detail-hero .btn-coral { color: #fff; background: linear-gradient(135deg, #ed795d, #d95f4a); border-color: transparent; }
.ticket-detail-page .ticket-detail-hero .btn-outline-danger { color: #ffd4ce; background: rgba(110, 29, 40, .2); border-color: rgba(255, 182, 166, .45); }
.ticket-detail-page .ticket-detail-hero-art { position: absolute; top: 50%; right: 15%; z-index: 0; width: clamp(130px, 18vw, 200px); aspect-ratio: 1; transform: translateY(-50%); }
.ticket-detail-page .ticket-detail-hero-art svg { position: absolute; inset: 17%; width: 66%; fill: rgba(172, 255, 239, .1); stroke: #aaffed; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 15px rgba(106, 255, 230, .65)); animation: ticket-detail-pass-float 4s ease-in-out infinite; }
.ticket-detail-page .ticket-detail-orbit { position: absolute; inset: 0; border: 1px solid rgba(164, 255, 236, .3); border-radius: 50%; box-shadow: inset 0 0 30px rgba(105, 243, 218, .08), 0 0 30px rgba(105, 243, 218, .08); animation: ticket-detail-orbit 12s linear infinite; }
.ticket-detail-page .ticket-detail-orbit::before,
.ticket-detail-page .ticket-detail-orbit::after { position: absolute; width: 9px; height: 9px; background: #aaffed; border-radius: 50%; box-shadow: 0 0 12px #aaffed; content: ''; }
.ticket-detail-page .ticket-detail-orbit::before { top: 12%; left: 18%; }
.ticket-detail-page .ticket-detail-orbit::after { right: 5%; bottom: 28%; width: 6px; height: 6px; background: #ffbd7a; box-shadow: 0 0 12px #ffbd7a; }
.ticket-detail-page .ticket-detail-description,
.ticket-detail-page .ticket-detail-schedules {
    padding: clamp(1.1rem, 2.4vw, 1.8rem);
    background: linear-gradient(150deg, #fff, #f7fbfb);
    border: 1px solid var(--ticket-detail-line);
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(12, 48, 61, .07);
}
.ticket-detail-page .ticket-detail-image { width: 100%; max-height: 280px; object-fit: cover; border: 1px solid var(--ticket-detail-line); border-radius: 12px; box-shadow: 0 10px 24px rgba(8, 35, 45, .12); }
.ticket-detail-section-label { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: .55rem; color: #087f83; font: 800 .68rem 'DM Mono', monospace; letter-spacing: .08em; }
.ticket-detail-section-label > span { display: inline-grid; width: 26px; height: 26px; place-items: center; color: #087f83; background: #e3f7f2; border-radius: 8px; font: 700 .95rem sans-serif; }
.ticket-detail-page .ticket-detail-description p { color: #526c76; line-height: 1.75; }
.ticket-detail-page .ticket-detail-stat {
    min-height: 146px;
    overflow: hidden;
    padding: 1.25rem 1.35rem;
    background: linear-gradient(145deg, #fff, var(--stat-soft, #f2fbfa));
    border: 1px solid color-mix(in srgb, var(--stat-color, #087f83) 20%, white);
    border-radius: 15px;
    box-shadow: 0 9px 24px rgba(12, 48, 61, .06);
    transition: transform .2s ease, box-shadow .2s ease;
}
.ticket-detail-page .ticket-detail-stat:hover { transform: translateY(-3px); box-shadow: 0 15px 30px rgba(12, 48, 61, .12); }
.ticket-detail-page .ticket-detail-stat::after { position: absolute; top: -38px; right: -34px; width: 112px; height: 112px; background: color-mix(in srgb, var(--stat-color, #087f83) 9%, transparent); border-radius: 50%; content: ''; }
.ticket-detail-stat--price { --stat-color: #e56d4f; --stat-soft: #fff6f0; }
.ticket-detail-stat--quota { --stat-color: #168e87; --stat-soft: #effbf8; }
.ticket-detail-stat--sold { --stat-color: #3b79ba; --stat-soft: #f0f7ff; }
.ticket-detail-stat--remaining { --stat-color: #ad7a20; --stat-soft: #fff9ec; }
.ticket-detail-stat--transactions { --stat-color: #8254b4; --stat-soft: #f8f3ff; }
.ticket-detail-stat--items { --stat-color: #168e87; --stat-soft: #effbf8; }
.ticket-detail-stat--participants { --stat-color: #df704f; --stat-soft: #fff6f0; }
.ticket-detail-page .ticket-detail-stat-icon { position: absolute; top: 1.1rem; right: 1.1rem; z-index: 1; display: grid; width: 42px; height: 42px; place-items: center; color: var(--stat-color); background: color-mix(in srgb, var(--stat-color) 12%, white); border: 1px solid color-mix(in srgb, var(--stat-color) 18%, white); border-radius: 12px; }
.ticket-detail-page .ticket-detail-stat-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ticket-detail-page .ticket-detail-stat small,
.ticket-detail-page .ticket-detail-stat .eyebrow { position: relative; z-index: 1; color: var(--ticket-detail-muted); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ticket-detail-page .ticket-detail-stat .dashboard-number { position: relative; z-index: 1; margin-top: 1.2rem !important; color: var(--ticket-detail-ink); font-size: clamp(1.2rem, 2vw, 1.8rem); overflow-wrap: anywhere; }
.ticket-detail-page .ticket-detail-schedules .workspace-section-title { color: var(--ticket-detail-ink); }
.ticket-detail-page .ticket-detail-schedules .table-shell { max-height: 420px; overflow: auto; border: 1px solid var(--ticket-detail-line); border-radius: 12px; }
.ticket-detail-page .ticket-detail-schedules .ticket-schedule-table { min-width: 850px; }
.ticket-detail-page .ticket-detail-schedules .table thead th { padding: .9rem; color: #b7d8da; background: linear-gradient(110deg, #102f40, #155966); border: 0; }
.ticket-detail-page .ticket-detail-schedules .table tbody td { padding: .85rem .9rem; color: #294652; border-color: rgba(25, 71, 87, .08); vertical-align: middle; }
.ticket-detail-page .ticket-detail-schedules .table tbody tr { transition: background-color .16s ease; }
.ticket-detail-page .ticket-detail-schedules .table tbody tr:hover td { background: #effafa; }
.ticket-detail-page .ticket-detail-schedules .status-pill { color: #12606a; background: #e5f5f2; }
.ticket-detail-page .ticket-detail-schedules .empty-state { padding: 1.5rem; color: #718891; background: #f7fbfb; border: 1px dashed rgba(25, 71, 87, .18); border-radius: 12px; text-align: center; }
@keyframes ticket-detail-pass-float { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-9px) rotate(3deg); } }
@keyframes ticket-detail-orbit { to { transform: rotate(360deg); } }
@media (max-width: 767px) {
    .ticket-detail-page .ticket-detail-hero { min-height: 0; align-items: flex-start; flex-direction: column; gap: 1.4rem; border-radius: 16px; }
    .ticket-detail-page .ticket-detail-hero > div:first-child { max-width: 100%; }
    .ticket-detail-page .ticket-detail-hero > div:nth-child(2) { width: 100%; }
    .ticket-detail-page .ticket-detail-hero-art { top: 12%; right: 3%; width: 110px; transform: none; opacity: .35; }
    .ticket-detail-page .ticket-detail-hero h1 { position: relative; z-index: 1; }
    .ticket-detail-page .ticket-detail-hero form { flex: 1 1 auto; }
    .ticket-detail-page .ticket-detail-hero form .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .ticket-detail-page .ticket-detail-hero-art svg,
    .ticket-detail-page .ticket-detail-orbit { animation: none; }
    .ticket-detail-page .ticket-detail-stat { transition: none; }
}

/* Visitor ticket collection and transaction details */
.workspace-shell--visitor-tickets .workspace-heading,
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero {
    position: relative;
    overflow: hidden;
    background: radial-gradient(ellipse at 78% 14%,rgba(67,221,192,.2),transparent 35%),repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px),linear-gradient(118deg,#092735,#0d4b58 66%,#107b79);
    border: 1px solid rgba(132,244,222,.18);
    border-radius: 14px;
    box-shadow: 0 22px 48px rgba(8,35,45,.16);
    isolation: isolate;
}
.workspace-shell--visitor-tickets .workspace-heading::before { z-index: -1; height: auto; background: linear-gradient(90deg,rgba(69,216,192,.14),rgba(114,209,224,.08),rgba(241,141,105,.12)); }
.workspace-shell--visitor-tickets .workspace-heading > div:first-child,
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero__text { position: relative; z-index: 2; max-width: min(62%,700px); }
.workspace-shell--visitor-tickets .workspace-heading .eyebrow { color: #9af0dc; }
.workspace-shell--visitor-tickets .workspace-heading h1 { color: #fff; font-family: 'Playfair Display',serif; font-size: clamp(2rem,3.8vw,3rem); letter-spacing: -.04em; }
.workspace-shell--visitor-tickets .workspace-heading p { color: rgba(236,255,250,.76); }
.workspace-shell--visitor-tickets .workspace-heading > .status-pill { position: absolute; top: 20px; right: 20px; z-index: 2; flex: 0 0 auto; color: #c8ffef; background: rgba(9,25,38,.28); border-color: rgba(176,255,238,.24); backdrop-filter: blur(8px); }
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero { min-height: 220px; padding-right: clamp(245px,30vw,360px); }
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero__text { max-width: 620px; }
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-page-hero__kicker { display: inline-flex; align-items: center; gap: 8px; color: #9af0dc; }
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-page-hero__title { color: #fff; font: 700 clamp(2rem,3.8vw,3rem)/1.08 'Playfair Display',serif; }
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-page-hero__desc { color: rgba(236,255,250,.76); }
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-back-btn { position: relative; z-index: 2; color: #d6fff2; background: rgba(154,240,220,.1); border: 1px solid rgba(154,240,220,.24); border-radius: 7px; }
.workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-back-btn:hover { color: #103c46; background: #b0f2df; }
.visitor-ticket-voyage-scene { position: absolute; top: 50%; right: 4%; z-index: 1; width: clamp(245px,31vw,365px); aspect-ratio: 9/5; transform: translateY(-50%); pointer-events: none; }
.visitor-ticket-voyage-scene > svg { position: relative; z-index: 1; display: block; width: 100%; overflow: visible; filter: drop-shadow(0 12px 18px rgba(2,19,30,.25)); }
.visitor-ticket-voyage-scene__orbit { position: absolute; top: 50%; left: 50%; width: 108%; height: 78%; border: 1px solid rgba(150,246,226,.2); border-radius: 50%; }
.visitor-ticket-voyage-scene__orbit--one { transform: translate(-50%,-50%) rotate(-19deg); animation: visitor-ticket-orbit 18s linear infinite; }
.visitor-ticket-voyage-scene__orbit--two { width: 92%; height: 94%; border-color: rgba(242,198,109,.16); transform: translate(-50%,-50%) rotate(25deg); animation: visitor-ticket-orbit 24s linear infinite reverse; }
.visitor-ticket-voyage-scene__wake { fill: none; stroke: #6be0ca; stroke-linecap: round; stroke-width: 2; stroke-dasharray: 5 6; animation: visitor-ticket-wake 1.8s linear infinite; }
.visitor-ticket-voyage-scene__ticket { fill: rgba(164,246,224,.2); stroke: #a4f6e0; stroke-width: 2; animation: visitor-ticket-convert 8s ease-in-out infinite; }
.visitor-ticket-voyage-scene__ticket > path:not(:first-child) { fill: none; stroke: rgba(197,255,242,.78); stroke-linecap: round; stroke-width: 1.7; stroke-dasharray: 3 3; }
.visitor-ticket-voyage-scene__ticket circle { fill: rgba(255,207,137,.2); stroke: #ffcf89; stroke-width: 1.5; }
.visitor-ticket-voyage-scene__boarding-pass { fill: rgba(255,207,137,.2); stroke: #ffd58c; stroke-width: 2; opacity: 0; animation: visitor-boarding-pass 8s ease-in-out infinite; }
.visitor-ticket-voyage-scene__boarding-pass > path:not(:first-child) { fill: none; stroke: #ffe5ad; stroke-linecap: round; stroke-width: 1.7; stroke-dasharray: 3 3; }
.visitor-ticket-voyage-scene__boarding-pass circle { fill: rgba(255,255,255,.16); stroke: #fff0c7; stroke-width: 1.5; }
.visitor-ticket-voyage-scene__boarding-pass text { fill: #fff0c7; stroke: none; font: 700 5px 'DM Mono',monospace; }
.visitor-ticket-voyage-scene__boat { opacity: 0; transform-box: fill-box; transform-origin: center; animation: visitor-ticket-boat 8s ease-in-out infinite; }
.visitor-ticket-voyage-scene__hull { fill: #f3a66c; stroke: #ffe0ae; stroke-linejoin: round; stroke-width: 1.5; }
.visitor-ticket-voyage-scene__deck { fill: #e4fff4; stroke: #b9f5e5; stroke-linejoin: round; stroke-width: 1.6; }
.visitor-ticket-voyage-scene__chimney { fill: #e56d4f; stroke: #ffd19a; stroke-width: 1.3; }
.visitor-ticket-voyage-scene__windows { fill: none; stroke: #13847f; stroke-linecap: round; stroke-width: 2; }
.visitor-ticket-voyage-scene__wheel { fill: #164d58; stroke: #a4f6e0; stroke-width: 2; }
.visitor-ticket-voyage-scene__steam { fill: #dcfff5; opacity: .75; transform-box: fill-box; transform-origin: center bottom; animation: visitor-ticket-steam 1.8s ease-out infinite; }
.visitor-ticket-voyage-scene__sign > path:first-child { fill: none; stroke: #b8f4df; stroke-linecap: round; stroke-width: 3; }
.visitor-ticket-voyage-scene__sign > path:nth-child(2) { fill: #ffcf89; stroke: #fff0c5; stroke-width: 1; }
.visitor-ticket-voyage-scene__sign text { fill: #123f49; font: 700 7px 'DM Mono',monospace; letter-spacing: .45px; }
.visitor-ticket-voyage-scene__wind { fill: none; stroke: #a4f6e0; stroke-linecap: round; stroke-width: 2; stroke-dasharray: 12 7; animation: visitor-ticket-wind 1.2s linear infinite; }
.visitor-ticket-voyage-scene__spark { fill: #ffd27e; filter: drop-shadow(0 0 5px rgba(255,210,126,.85)); transform-origin: 267px 52px; animation: visitor-ticket-spark 2.6s ease-in-out infinite; }
.visitor-ticket-voyage-scene__caption { position: absolute; right: 0; bottom: -4px; color: rgba(184,241,223,.62); font: 600 .45rem 'DM Mono',monospace; letter-spacing: .12em; }
.workspace-shell--visitor-tickets .myticket-overview { border-radius: 13px; }
.workspace-shell--visitor-tickets .myticket-overview > div { min-height: 136px; }
.workspace-shell--visitor-tickets .myticket-overview-icon { transition: transform .2s ease,box-shadow .2s ease; }
.workspace-shell--visitor-tickets .myticket-overview > div:hover .myticket-overview-icon { box-shadow: 0 8px 15px rgba(20,112,126,.13); transform: translateY(-2px) rotate(-5deg); }
.workspace-shell--visitor-tickets .myticket-filter-panel { border-radius: 13px; }
.workspace-shell--visitor-tickets .myticket-filter-panel .form-label { display: inline-flex; align-items: center; gap: 7px; color: #315861; font-size: .72rem; font-weight: 800; }
.workspace-shell--visitor-tickets .myticket-filter-panel .form-label i { color: #188e83; }
.workspace-shell--visitor-tickets .myticket-filter-panel .btn-coral { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.workspace-shell--visitor-tickets .myticket-status-legend { display: flex; flex-wrap: wrap; gap: 9px 18px; margin: -10px 0 22px; padding: 12px 15px; color: #4d6d72; background: rgba(255,255,255,.8); border: 1px solid rgba(20,112,126,.1); border-radius: 9px; font-size: .68rem; font-weight: 700; }
.workspace-shell--visitor-tickets .myticket-status-legend span { display: inline-flex; align-items: center; gap: 7px; }
.workspace-shell--visitor-tickets .myticket-status-legend i { width: 9px; height: 9px; border-radius: 50%; }
.workspace-shell--visitor-tickets .myticket-status-legend i.is-complete { background: #26a56d; }
.workspace-shell--visitor-tickets .myticket-status-legend i.is-incomplete { background: #f0aa27; }
.workspace-shell--visitor-tickets .myticket-status-legend i.is-cancelled { background: #d55252; }
.workspace-shell--visitor-tickets .myticket-status-legend i.is-past { background: #89979c; }
.workspace-shell--visitor-tickets .myticket-card { border-radius: 13px; }
.workspace-shell--visitor-tickets .myticket-card-banner { position: relative; overflow: hidden; }
.workspace-shell--visitor-tickets .myticket-card-banner::after { position: absolute; top: 0; right: -25px; width: 95px; height: 100%; content: ''; border-left: 1px dashed rgba(207,255,240,.34); border-right: 1px dashed rgba(207,255,240,.34); opacity: .65; transform: skewX(-12deg); pointer-events: none; }
.workspace-shell--visitor-tickets .myticket-card-icon { position: relative; z-index: 1; }
.workspace-shell--visitor-tickets .myticket-card--is-complete { border-color: rgba(30,151,111,.36); box-shadow: 0 14px 32px rgba(21,112,84,.1); }
.workspace-shell--visitor-tickets .myticket-card--is-complete .myticket-card-banner { background: linear-gradient(115deg,#0b5548,#12806d 68%,#27a88b); }
.workspace-shell--visitor-tickets .myticket-card--is-incomplete { border-color: rgba(228,148,30,.55); box-shadow: 0 14px 32px rgba(190,120,20,.12); }
.workspace-shell--visitor-tickets .myticket-card--is-incomplete .myticket-card-banner { background: linear-gradient(115deg,#704515,#a96513 68%,#d18b1c); }
.workspace-shell--visitor-tickets .myticket-card--is-incomplete .myticket-card-banner .eyebrow { color: #ffe5a2; }
.workspace-shell--visitor-tickets .myticket-card--is-cancelled { border-color: rgba(206,73,73,.42); box-shadow: 0 14px 32px rgba(158,52,52,.1); }
.workspace-shell--visitor-tickets .myticket-card--is-cancelled .myticket-card-banner { background: linear-gradient(115deg,#672f39,#a43f49 68%,#cc5753); }
.workspace-shell--visitor-tickets .myticket-card--is-past { border-color: rgba(109,124,130,.35); box-shadow: 0 14px 32px rgba(75,91,97,.08); }
.workspace-shell--visitor-tickets .myticket-card--is-past .myticket-card-banner { background: linear-gradient(115deg,#394b54,#596970 68%,#78868a); }
.workspace-shell--visitor-tickets .myticket-card--is-past .myticket-card-banner .eyebrow { color: #e0e7e7; }
.workspace-shell--visitor-tickets .myticket-data-badge,
.workspace-shell--visitor-tickets .myticket-item-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 5px 9px;
    border: 1px solid transparent;
    border-radius: 99px;
    font-size: .66rem;
    font-weight: 800;
}
.workspace-shell--visitor-tickets .myticket-data-badge.is-complete,
.workspace-shell--visitor-tickets .myticket-item-status.is-complete { color: #176847; background: #dff6e9; border-color: #bce8cf; }
.workspace-shell--visitor-tickets .myticket-data-badge.is-incomplete,
.workspace-shell--visitor-tickets .myticket-item-status.is-incomplete { color: #80500c; background: #fff0bf; border-color: #f1d37a; }
.workspace-shell--visitor-tickets .myticket-data-badge.is-cancelled,
.workspace-shell--visitor-tickets .myticket-item-status.is-cancelled { color: #a12e36; background: #ffe2df; border-color: #f5c0ba; }
.workspace-shell--visitor-tickets .myticket-data-badge.is-past,
.workspace-shell--visitor-tickets .myticket-item-status.is-past { color: #5e6c71; background: #e9edef; border-color: #d5dde0; }
.workspace-shell--visitor-tickets .myticket-item-status { margin-left: auto; white-space: nowrap; }
.workspace-shell--visitor-tickets .myticket-item-line--is-incomplete { margin: 5px -10px; padding: 10px !important; background: #fffaf0; border-left: 3px solid #e9a323; border-radius: 5px; }
.workspace-shell--visitor-tickets .myticket-item-line--is-cancelled { color: #81353a; background: #fff5f4; border-left: 3px solid #d55252; }
.workspace-shell--visitor-tickets .myticket-item-line--is-past { color: #66757a; background: #f1f3f4; border-left: 3px solid #89979c; }
.workspace-shell--visitor-tickets .myticket-item-line--is-incomplete > strong,
.workspace-shell--visitor-tickets .myticket-item-line--is-incomplete small { color: #704c18; }
.workspace-shell--visitor-tickets .myticket-item-line--is-cancelled > strong,
.workspace-shell--visitor-tickets .myticket-item-line--is-cancelled small { color: #8d4547; }
.workspace-shell--visitor-tickets .myticket-item-line--is-past > strong,
.workspace-shell--visitor-tickets .myticket-item-line--is-past small { color: #66757a; }
.workspace-shell--visitor-tickets .myticket-participant-progress { font-weight: 800; }
.workspace-shell--visitor-tickets .myticket-next-port-badge,
.workspace-shell--visitor-tickets .myticket-item-next-port {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    margin-top: 7px;
    padding: 4px 9px;
    color: #104d3d;
    background: #b8f2d8;
    border: 1px solid rgba(211,255,230,.75);
    border-radius: 99px;
    font: 800 .61rem 'DM Mono',monospace;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.workspace-shell--visitor-tickets .myticket-item-next-port { color: #176847; background: #e5f8ed; border-color: #c7ebd4; }
.workspace-shell--visitor-tickets .myticket-card--today.myticket-card--is-incomplete .myticket-card-banner { background: linear-gradient(115deg,#704515,#a96513 68%,#d18b1c); }
.workspace-shell--visitor-tickets .myticket-card--today.myticket-card--is-cancelled .myticket-card-banner { background: linear-gradient(115deg,#672f39,#a43f49 68%,#cc5753); }
.workspace-shell--visitor-tickets .myticket-card--today.myticket-card--is-past .myticket-card-banner { background: linear-gradient(115deg,#394b54,#596970 68%,#78868a); }
.workspace-shell--visitor-tickets .myticket-card-actions .btn { transition: transform .2s ease,box-shadow .2s ease; }
.workspace-shell--visitor-tickets .myticket-card-actions .myticket-complete-action { color: #573608; background: linear-gradient(110deg,#ffd36f,#ffac4a); border: 0; box-shadow: 0 7px 17px rgba(204,135,32,.2); }
.workspace-shell--visitor-tickets .myticket-card-actions .myticket-complete-action:hover { color: #573608; background: linear-gradient(110deg,#ffca54,#f49a32); }
.workspace-shell--visitor-tickets .myticket-card-actions .btn:hover { transform: translateY(-2px); }
.workspace-shell--visitor-ticket-detail .detail-transaction-hero { position: relative; overflow: hidden; min-height: 150px; background: radial-gradient(ellipse at 90% 5%,rgba(69,216,192,.18),transparent 40%),repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 1px,transparent 1px 14px),linear-gradient(115deg,#092e3c,#105765 74%,#146d73); border: 1px solid rgba(132,244,222,.16); border-radius: 13px; }
.workspace-shell--visitor-ticket-detail .detail-transaction-icon { color: #164651; background: linear-gradient(145deg,#a8f0dc,#81cfe2); border-radius: 12px; box-shadow: 0 8px 20px rgba(4,26,35,.2); }
.workspace-shell--visitor-ticket-detail .detail-transaction-copy .eyebrow { color: #86e6d6; }
.workspace-shell--visitor-ticket-detail .detail-transaction-status strong { color: #ffd27e; }
.workspace-shell--visitor-ticket-detail .detail-card { border: 1px solid rgba(20,112,126,.11); border-radius: 12px; box-shadow: 0 12px 28px rgba(14,65,77,.06); }
.workspace-shell--visitor-ticket-detail .detail-card > .eyebrow,
.workspace-shell--visitor-ticket-detail .detail-card .profile-label { color: #25877f; }
.workspace-shell--visitor-ticket-detail .detail-total-card { background: linear-gradient(145deg,#fff,#fff8e9); border-color: #f0e3c3; }
.workspace-shell--visitor-ticket-detail .detail-action-card { padding: clamp(18px,2.5vw,26px); border-radius: 12px; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card { background: linear-gradient(135deg,#effaf6,#f8fcfa); }
.workspace-shell--visitor-ticket-detail .detail-payment-card { background: linear-gradient(135deg,#fffdf7,#fffaf0); }
.workspace-shell--visitor-ticket-detail .detail-action-card .btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border-radius: 8px; }
@keyframes visitor-ticket-orbit { to { rotate: 360deg; } }
@keyframes visitor-ticket-wake { to { stroke-dashoffset: -22; } }
@keyframes visitor-ticket-wind { to { stroke-dashoffset: -38; } }
@keyframes visitor-ticket-convert { 0%,16% { opacity: 1; transform: translateY(0) rotate(-2deg) scale(1); } 23%,44% { opacity: 0; transform: translateY(-9px) rotate(9deg) scale(.88); } 100% { opacity: 0; transform: translateY(-9px) rotate(9deg) scale(.88); } }
@keyframes visitor-boarding-pass { 0%,20% { opacity: 0; transform: translateY(8px) rotate(-7deg) scale(.85); } 27%,45% { opacity: 1; transform: translateY(0) rotate(0) scale(1); } 53%,100% { opacity: 0; transform: translateY(-8px) rotate(5deg) scale(.9); } }
@keyframes visitor-ticket-boat { 0%,39% { opacity: 0; transform: translateX(-16px); } 46% { opacity: 1; } 72% { opacity: 1; transform: translateX(62px); } 84%,100% { opacity: 0; transform: translateX(78px); } }
@keyframes visitor-ticket-steam { 0%,42% { opacity: 0; transform: translateY(6px) scale(.65); } 55% { opacity: .8; } 100% { opacity: 0; transform: translateY(-17px) scale(1.3); } }
@keyframes visitor-ticket-spark { 0%,100% { opacity: .65; transform: scale(.8) rotate(0); } 50% { opacity: 1; transform: scale(1.14) rotate(20deg); } }
@media (max-width: 767.98px) {
    .workspace-shell--visitor-tickets .workspace-heading { min-height: 220px; padding-right: 230px; }
    .workspace-shell--visitor-tickets .workspace-heading > div:first-child,
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero__text { max-width: 100%; }
    .visitor-ticket-voyage-scene { right: 2%; width: 235px; opacity: .8; }
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero { min-height: 220px; padding-right: 220px; }
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-back-btn { position: absolute; right: 18px; bottom: 16px; }
}
@media (max-width: 575.98px) {
    .workspace-shell--visitor-tickets .workspace-heading { min-height: 230px; padding: 24px 20px; }
    .workspace-shell--visitor-tickets .workspace-heading > div:first-child { max-width: 100%; }
    .workspace-shell--visitor-tickets .workspace-heading h1 { max-width: 70%; font-size: 2rem; }
    .workspace-shell--visitor-tickets .workspace-heading p { max-width: 68%; font-size: .77rem; }
    .workspace-shell--visitor-tickets .workspace-heading > .status-pill { top: auto; right: 14px; bottom: 14px; padding: 6px 8px; font-size: .58rem; }
    .visitor-ticket-voyage-scene { top: auto; right: -35px; bottom: -12px; width: 175px; opacity: .5; transform: none; }
    .visitor-ticket-voyage-scene__caption { display: none; }
    .workspace-shell--visitor-tickets .myticket-overview > div { min-height: 120px; padding: 17px; }
    .workspace-shell--visitor-tickets .myticket-overview > div:nth-child(-n+3) { padding-right: 52px; }
    .workspace-shell--visitor-tickets .myticket-overview-icon { top: 15px; right: 13px; width: 31px; height: 31px; }
    .workspace-shell--visitor-tickets .myticket-card-banner { align-items: flex-start; gap: 10px; padding: 17px 14px; }
    .workspace-shell--visitor-tickets .myticket-card-banner strong { max-width: 128px; font-size: .78rem; }
    .workspace-shell--visitor-tickets .myticket-status-badge { gap: 4px; margin-left: auto; padding: 6px 7px; font-size: .56rem; }
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero { min-height: 222px; padding: 23px 19px; }
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-page-hero__text { max-width: 100%; padding-right: 0; }
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-page-hero__title { max-width: 72%; font-size: 2rem; }
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-page-hero__desc { max-width: 68%; font-size: .77rem; }
    .workspace-shell--visitor-ticket-detail .visitor-ticket-detail-page-hero .ws-back-btn { right: 13px; bottom: 12px; padding: 7px 9px; }
    .workspace-shell--visitor-ticket-detail .detail-transaction-hero { gap: 12px; padding: 20px 17px; }
    .workspace-shell--visitor-ticket-detail .detail-transaction-status { width: auto; margin-left: auto; padding: 0 0 0 12px; border-top: 0; border-left: 1px solid rgba(255,255,255,.2); text-align: right; }
}
@media (prefers-reduced-motion: reduce) {
    .visitor-ticket-voyage-scene *,
    .visitor-ticket-voyage-scene *::before,
    .visitor-ticket-voyage-scene *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
    .visitor-ticket-voyage-scene__ticket { display: none; }
    .visitor-ticket-voyage-scene__boarding-pass { opacity: 1; }
    .visitor-ticket-voyage-scene__boat { opacity: 1; transform: translateX(30px); }
    .visitor-ticket-voyage-scene__steam { opacity: .6; }
    .workspace-shell--visitor-tickets .myticket-overview-icon,
    .workspace-shell--visitor-ticket-detail .detail-card,
    .workspace-shell--visitor-ticket-detail .detail-transaction-hero { transition: none !important; }
}

.workspace-shell--visitor-ticket-detail .detail-summary-grid { --bs-gutter-x: 18px; --bs-gutter-y: 18px; }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .detail-card { position: relative; overflow: hidden; padding: clamp(20px,2.4vw,28px); }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .detail-card::before { position: absolute; top: 0; left: 0; width: 100%; height: 3px; content: ''; background: linear-gradient(90deg,#35b59d,#81d8d0,#ffd27e); }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .detail-card > .eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 8px; font: 800 .63rem 'DM Mono',monospace; letter-spacing: .1em; text-transform: uppercase; }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .detail-card > .eyebrow i { display: grid; width: 31px; height: 31px; place-items: center; color: #16877f; background: #e6f7f1; border: 1px solid #d7eee6; border-radius: 9px; font-size: .9rem; }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .profile-label { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 7px; color: #72888c; font-size: .58rem; letter-spacing: .07em; }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .profile-label i { color: #26978e; font-size: .72rem; }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .profile-label + div { overflow-wrap: anywhere; color: #183d47; font-size: .82rem; font-weight: 700; }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .status-pill { display: inline-flex; align-items: center; padding: 6px 10px; color: #167566; background: #e3f7ef; border: 1px solid #cdeee1; font-size: .65rem; font-weight: 800; }
.workspace-shell--visitor-ticket-detail .detail-summary-grid .detail-total-card { justify-content: center; background: radial-gradient(circle at 92% 16%,rgba(255,210,126,.2),transparent 30%),linear-gradient(145deg,#fffdf8,#fff7e8); border-color: #f0e1bd; }
.workspace-shell--visitor-ticket-detail .detail-total-card::after { position: absolute; right: 24px; bottom: -44px; width: 150px; height: 150px; content: ''; border: 1px dashed rgba(194,135,45,.16); border-radius: 50%; box-shadow: 0 0 0 18px rgba(194,135,45,.025),0 0 0 38px rgba(194,135,45,.02); pointer-events: none; }
.workspace-shell--visitor-ticket-detail .detail-total-card > * { position: relative; z-index: 1; }
.workspace-shell--visitor-ticket-detail .detail-total-card > .eyebrow i { color: #ad7621; background: #fff1ce; border-color: #f4e6c1; }
.workspace-shell--visitor-ticket-detail .detail-total-card .dashboard-number { margin: 15px 0 8px !important; color: #bd513c; font-size: clamp(2rem,3.2vw,2.8rem); font-weight: 800; letter-spacing: -.04em; }
.workspace-shell--visitor-ticket-detail .detail-total-card .small { display: inline-flex; align-items: center; gap: 6px; color: #81745b !important; font-size: .73rem; }
.workspace-shell--visitor-ticket-detail .detail-items-card { padding: clamp(20px,2.4vw,28px); }
.workspace-shell--visitor-ticket-detail .detail-items-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 17px; }
.workspace-shell--visitor-ticket-detail .detail-items-heading .eyebrow { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 5px; color: #d96b4c; font: 800 .6rem 'DM Mono',monospace; letter-spacing: .1em; text-transform: uppercase; }
.workspace-shell--visitor-ticket-detail .detail-items-heading .eyebrow i { font-size: .8rem; }
.workspace-shell--visitor-ticket-detail .detail-items-heading .workspace-section-title { color: #153d47; font: 700 1.65rem/1.15 'Playfair Display',serif; }
.workspace-shell--visitor-ticket-detail .detail-items-heading .status-pill { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 7px 10px; color: #17756d; background: #e4f6f0; border: 1px solid #d5eee5; font-size: .64rem; }
.workspace-shell--visitor-ticket-detail .detail-items-heading .status-pill::before { width: 6px; height: 6px; content: ''; background: #36a58e; border-radius: 50%; box-shadow: 0 0 0 3px rgba(54,165,142,.12); }
.workspace-shell--visitor-ticket-detail .detail-items-table { min-width: 560px; margin: 0; }
.workspace-shell--visitor-ticket-detail .detail-items-table thead th { padding: 13px 16px; color: #5c777c; background: linear-gradient(90deg,#f1f8f5,#f5f8fb); border-bottom: 1px solid #e2ede8; font: 800 .58rem 'DM Mono',monospace; letter-spacing: .08em; }
.workspace-shell--visitor-ticket-detail .detail-items-table tbody td { padding: 17px 16px; color: #25464e; border-bottom-color: #e9f0ed; font-size: .77rem; }
.workspace-shell--visitor-ticket-detail .detail-items-table tbody tr:last-child td { border-bottom: 0; }
.workspace-shell--visitor-ticket-detail .detail-items-table tbody tr:hover { background: #f5fbf8; }
.workspace-shell--visitor-ticket-detail .detail-items-table tbody td:first-child strong { color: #153d47; }
.workspace-shell--visitor-ticket-detail .detail-items-table tbody td:nth-child(2) strong { color: #247f78; }
.workspace-shell--visitor-ticket-detail .detail-items-table tbody td:nth-child(3),
.workspace-shell--visitor-ticket-detail .detail-items-table thead th:nth-child(3) { text-align: center; }
.workspace-shell--visitor-ticket-detail .detail-items-table tbody td:last-child { color: #c35740; font-weight: 800; white-space: nowrap; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card { position: relative; overflow: hidden; padding: clamp(20px,2.5vw,28px); background: radial-gradient(ellipse at 92% 0,rgba(91,209,183,.12),transparent 35%),linear-gradient(135deg,#effaf6,#f9fcfa); border: 1px solid rgba(37,148,127,.18); border-left: 4px solid #2f9c8d; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card::after { position: absolute; top: -55px; right: 14%; width: 150px; height: 150px; content: ''; border: 1px dashed rgba(33,145,128,.15); border-radius: 50%; box-shadow: 0 0 0 18px rgba(33,145,128,.025),0 0 0 38px rgba(33,145,128,.02); pointer-events: none; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card > * { position: relative; z-index: 1; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card .eyebrow { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 6px; color: #25877f; font: 800 .6rem 'DM Mono',monospace; letter-spacing: .1em; text-transform: uppercase; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card .eyebrow i { color: #df7653; font-size: .85rem; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card .workspace-section-title { max-width: 760px; color: #153d47; font-size: clamp(1.05rem,1.7vw,1.35rem); }
.workspace-shell--visitor-ticket-detail .detail-boarding-card > .d-flex:last-child { align-items: center !important; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card > .d-flex:last-child > p { max-width: 570px; color: #5c7478 !important; font-size: .8rem; line-height: 1.6; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card .status-pill { display: inline-flex; align-items: center; gap: 6px; color: #176f67; background: #dff4ed; border: 1px solid #ccebe0; font-size: .62rem; font-weight: 800; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card .btn-coral { color: #fff; background: linear-gradient(135deg,#ed795d,#d95f4a); border: 0; box-shadow: 0 8px 18px rgba(217,95,74,.2); font-size: .76rem; font-weight: 800; }
.workspace-shell--visitor-ticket-detail .detail-boarding-card .btn-coral:hover:not(:disabled) { box-shadow: 0 12px 22px rgba(217,95,74,.27); transform: translateY(-2px); }
.workspace-shell--visitor-ticket-detail .detail-boarding-card .btn-outline-ink { color: #657c80; background: rgba(255,255,255,.76); border-color: #dce9e4; }
@media (max-width: 767.98px) {
    .workspace-shell--visitor-ticket-detail .detail-items-card { padding: 19px 16px; }
    .workspace-shell--visitor-ticket-detail .detail-boarding-card > .d-flex:first-child { align-items: flex-start !important; }
}
@media (max-width: 575.98px) {
    .workspace-shell--visitor-ticket-detail .detail-summary-grid .detail-card { padding: 20px; }
    .workspace-shell--visitor-ticket-detail .detail-items-heading { align-items: flex-start; }
    .workspace-shell--visitor-ticket-detail .detail-items-heading .workspace-section-title { font-size: 1.4rem; }
    .workspace-shell--visitor-ticket-detail .detail-items-heading .status-pill { padding: 6px 8px; font-size: .59rem; }
    .workspace-shell--visitor-ticket-detail .detail-boarding-card > .d-flex:first-child { flex-direction: column; }
    .workspace-shell--visitor-ticket-detail .detail-boarding-card .status-pill { align-self: flex-start; }
}

.sf-scene { height: 250px; background: radial-gradient(ellipse at 68% 65%,rgba(25,126,144,.18),transparent 47%),linear-gradient(180deg,#092b37,#08232d); }
.sf-scene__svg:not(.sf-scene__network) { display: none; }
.sf-scene__network { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.sf-network-label { position: absolute; top: 14px; left: clamp(20px,5vw,76px); z-index: 1; display: flex; align-items: center; gap: 9px; color: rgba(200,239,235,.72); font: 600 .56rem 'DM Mono',monospace; letter-spacing: .14em; }
.sf-network-label strong { margin-left: 5px; padding: 5px 8px; color: #ffca77; background: rgba(242,198,109,.08); border: 1px solid rgba(242,198,109,.22); border-radius: 99px; font: inherit; letter-spacing: .1em; }
.sf-network-label__signal { width: 7px; height: 7px; background: #ff8061; border-radius: 50%; box-shadow: 0 0 0 4px rgba(255,128,97,.14),0 0 14px rgba(255,128,97,.8); animation: sfHub-pulse 1.8s ease-in-out infinite; }
.sf-network__grid { fill: none; stroke: rgba(93,180,195,.08); stroke-width: 1; }
.sf-network__land path { fill: url(#sfMapGlow); fill-opacity: .1; stroke: rgba(120,225,212,.42); stroke-width: 1.4; stroke-linejoin: round; }
.sf-network__land path:nth-child(3n + 2) { fill: rgba(92,174,207,.12); stroke: rgba(120,200,220,.35); }
.sf-network__routes path { fill: none; stroke: rgba(97,221,202,.3); stroke-width: 1.3; stroke-dasharray: 5 8; animation: sfRoute-flow 8s linear infinite; }
.sf-network__routes path:nth-child(even) { animation-delay: -4s; }
.sf-port { fill: #75d9d0; stroke: rgba(176,255,243,.5); stroke-width: 1.5; filter: drop-shadow(0 0 4px rgba(95,232,216,.7)); transform-box: fill-box; transform-origin: center; animation: sfPort-blink 3.6s ease-in-out infinite; }
.sf-port:nth-child(2) { animation-delay: .45s; }
.sf-port:nth-child(3) { animation-delay: .9s; }
.sf-port:nth-child(4) { animation-delay: 1.35s; }
.sf-port:nth-child(5) { animation-delay: 1.8s; }
.sf-port:nth-child(6) { animation-delay: 2.25s; }
.sf-port:nth-child(7) { animation-delay: 2.7s; }
.sf-port:nth-child(8) { animation-delay: 3.15s; }
.sf-network__hub-aura { transform-box: fill-box; transform-origin: center; animation: sfHub-aura 2.4s ease-out infinite; }
.sf-network__hub-ring { fill: rgba(255,111,83,.12); stroke: #ff9870; stroke-width: 2; filter: drop-shadow(0 0 8px rgba(255,119,91,.95)); animation: sfHub-pulse 1.8s ease-in-out infinite; }
.sf-network__hub-core { fill: #fff0b2; stroke: #ff6956; stroke-width: 3; filter: drop-shadow(0 0 12px #ff8061); }
.sf-network__indonesia { fill: #ff7458; stroke: #ffe1a1; stroke-width: 2; filter: drop-shadow(0 0 7px rgba(255,106,82,.95)); }
.sf-network__hub-label { fill: #ffe5ad; font: 800 13px 'DM Mono',monospace; letter-spacing: 1.4px; paint-order: stroke; stroke: #08232d; stroke-width: 3px; }
.sf-network__hub-sub { fill: #97ecdc; font: 600 7px 'DM Mono',monospace; letter-spacing: 1px; }
.sf-network__horizon { fill: none; stroke: rgba(65,202,194,.25); stroke-width: 1.5; }
.sf-network__stars { fill: #d6fff2; filter: drop-shadow(0 0 4px rgba(214,255,242,.8)); }
@keyframes sfPort-blink { 0%,100% { opacity: .35; transform: scale(.72); } 45%,60% { opacity: 1; transform: scale(1.35); } }
@keyframes sfRoute-flow { to { stroke-dashoffset: -52; } }
@keyframes sfHub-aura { 0% { opacity: .9; transform: scale(.45); } 100% { opacity: 0; transform: scale(1); } }
@keyframes sfHub-pulse { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@media (max-width: 1100px) {
    .sf-scene { height: 205px; }
}
@media (max-width: 575.98px) {
    .sf-scene { height: 145px; }
    .sf-network-label { top: 10px; left: 14px; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 28px); font-size: .48rem; letter-spacing: .08em; }
    .sf-network-label strong { margin-left: 13px; padding: 4px 7px; font-size: .46rem; }
    .sf-network__hub-label { font-size: 18px; }
    .sf-network__hub-sub { font-size: 10px; }
    .sf-network__routes path { stroke-width: 2; }
}
@media (prefers-reduced-motion: reduce) {
    .sf-network-label__signal,
    .sf-network__routes path,
    .sf-port,
    .sf-network__hub-aura,
    .sf-network__hub-ring { animation: none; }
    .sf-port { opacity: .8; }
    .sf-network__hub-aura { opacity: .35; }
    .sf-network__hub-ring { opacity: 1; }
}

.admin-messages-shell { background: radial-gradient(ellipse at 88% 5%, rgba(62,166,159,.09), transparent 30%), var(--mist); }
.admin-messages-shell .workspace-content { gap: 22px; }
.admin-messages-heading { align-items: center; }
.admin-messages-heading h1 { letter-spacing: -.04em; }
.admin-messages-live { display: inline-flex; align-items: center; gap: 9px; padding: 8px 12px; color: #276b59; background: #e5f5ee; border: 1px solid #ccebdd; border-radius: 99px; font: 700 .61rem 'DM Mono', monospace; letter-spacing: .07em; white-space: nowrap; }
.admin-messages-live > span, .admin-messages-kicker > span { width: 7px; height: 7px; flex: 0 0 7px; background: #49b884; border-radius: 50%; box-shadow: 0 0 0 4px rgba(73,184,132,.13), 0 0 12px rgba(73,184,132,.5); }
.admin-messages-hero { position: relative; display: grid; grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr); align-items: center; min-height: 310px; padding: 31px clamp(24px, 4vw, 46px); overflow: hidden; color: #fff; background: linear-gradient(112deg, #092b38 0%, #0c4650 58%, #14766f 100%); border: 1px solid rgba(101,224,202,.22); border-radius: 16px; box-shadow: 0 22px 46px rgba(8,35,45,.14); isolation: isolate; }
.admin-messages-hero::before { position: absolute; z-index: -1; inset: 0; content: ''; opacity: .17; background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(90deg, #000, transparent 92%); }
.admin-messages-hero::after { position: absolute; z-index: -1; right: 17%; bottom: -190px; width: 440px; height: 290px; content: ''; background: rgba(92,221,194,.13); border-radius: 50%; filter: blur(68px); }
.admin-messages-hero-copy { position: relative; z-index: 2; max-width: 410px; }
.admin-messages-kicker { display: inline-flex; align-items: center; gap: 9px; color: #9cebd9; font: 700 .62rem 'DM Mono', monospace; letter-spacing: .13em; }
.admin-messages-kicker > span { background: #80e6c6; box-shadow: 0 0 0 4px rgba(128,230,198,.14), 0 0 12px rgba(128,230,198,.6); }
.admin-messages-hero h2 { margin: 15px 0 11px; color: #fff; font: 700 clamp(2rem, 3.2vw, 2.85rem)/1.08 'Playfair Display', serif; letter-spacing: -.045em; }
.admin-messages-hero h2 span { color: #91e4d1; }
.admin-messages-hero-copy > p { max-width: 380px; margin: 0; color: rgba(236,255,250,.74); font-size: .8rem; line-height: 1.7; }
.admin-messages-hero-stats { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; padding: 10px 13px; background: rgba(4,34,43,.38); border: 1px solid rgba(173,235,220,.16); border-radius: 11px; }
.admin-messages-hero-stats > span:not(.admin-messages-stat-icon) { display: flex; flex-direction: column; gap: 1px; }
.admin-messages-hero-stats strong { color: #fff; font-size: .9rem; line-height: 1.1; }
.admin-messages-hero-stats small { color: rgba(236,255,250,.66); font-size: .55rem; }
.admin-messages-hero-stats > i { width: 1px; height: 26px; margin: 0 4px; background: rgba(255,255,255,.2); }
.admin-messages-stat-icon { display: grid; width: 35px; height: 35px; place-items: center; color: #a2eddb; background: rgba(116,224,196,.13); border-radius: 10px; }
.admin-messages-stat-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.admin-message-flight { position: relative; display: grid; min-width: 0; min-height: 260px; place-items: center; }
.admin-message-flight-art { position: relative; z-index: 1; width: min(100%, 500px); overflow: visible; filter: drop-shadow(0 16px 22px rgba(0,20,28,.2)); }
.admin-message-paper { transform-box: view-box; transform-origin: center; animation: admin-paper-flight 5.5s cubic-bezier(.4,0,.2,1) infinite; }
.admin-message-cloud { transform-box: view-box; transform-origin: center; animation: admin-cloud-arrive 5.5s ease-in-out infinite; }
.admin-message-envelope { transform-box: view-box; transform-origin: center; animation: admin-envelope-glow 5.5s ease-in-out infinite; }
.admin-message-trail { animation: admin-trail-flow 1.4s linear infinite; }
.admin-message-spark { transform-box: fill-box; transform-origin: center; animation: admin-spark 1.4s ease-in-out infinite alternate; }
.admin-message-orbit { position: absolute; right: 12%; top: 9%; width: 205px; height: 205px; border: 1px solid rgba(160,240,220,.19); border-radius: 50%; }
.admin-message-orbit--two { right: 17%; top: 17%; width: 175px; height: 175px; border-style: dashed; opacity: .7; }
.admin-message-flight-label { position: absolute; z-index: 2; right: 2px; bottom: 0; display: inline-flex; align-items: center; gap: 8px; padding: 7px 10px; color: rgba(236,255,250,.87); background: rgba(4,34,43,.58); border: 1px solid rgba(173,235,220,.19); border-radius: 99px; font: 500 .54rem 'DM Mono', monospace; backdrop-filter: blur(8px); }
.admin-message-flight-label > span { width: 6px; height: 6px; background: #77e3c2; border-radius: 50%; box-shadow: 0 0 8px rgba(119,227,194,.7); }
@keyframes admin-paper-flight {
    0%, 10% { opacity: 1; transform: translate(0, 53px) rotate(0) scale(.9); }
    48% { opacity: 1; transform: translate(125px, -37px) rotate(11deg) scale(.74); }
    62%, 78% { opacity: 0; transform: translate(151px, -58px) rotate(15deg) scale(.58); }
    90%, 100% { opacity: 1; transform: translate(0, 53px) rotate(0) scale(.9); }
}
@keyframes admin-cloud-arrive {
    0%, 40% { opacity: .67; transform: scale(.97); }
    53%, 78% { opacity: 1; transform: scale(1.04); }
    100% { opacity: .67; transform: scale(.97); }
}
@keyframes admin-envelope-glow {
    0%, 35%, 100% { filter: drop-shadow(0 0 0 rgba(129,238,207,0)); }
    45%, 66% { filter: drop-shadow(0 0 14px rgba(129,238,207,.55)); }
}
@keyframes admin-trail-flow { to { stroke-dashoffset: -26; } }
@keyframes admin-spark { to { opacity: .4; transform: scale(.65); } }
.admin-message-compose, .admin-message-list { padding: 25px 27px; border: 1px solid var(--line); border-radius: 13px; box-shadow: 0 14px 32px rgba(8,35,45,.055); }
.admin-message-card-heading { display: flex; align-items: center; gap: 12px; }
.admin-message-card-heading .eyebrow { margin-bottom: 4px; font-size: .61rem; }
.admin-message-section-icon { display: grid; width: 43px; height: 43px; flex: 0 0 43px; place-items: center; border: 1px solid transparent; border-radius: 13px; }
.admin-message-section-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.admin-message-section-icon--compose { color: #247c71; background: linear-gradient(145deg, #e1f7f2, #effaf7); border-color: rgba(47,143,150,.16); box-shadow: 0 6px 15px rgba(47,143,150,.1); }
.admin-message-section-icon--list { color: #9a6e1e; background: linear-gradient(145deg, #fff2ce, #fff9e9); border-color: rgba(230,177,76,.2); box-shadow: 0 6px 15px rgba(201,151,47,.1); }
.admin-message-compose .admin-message-card-heading { margin-bottom: 19px; }
.admin-message-compose .form-label, .admin-message-edit-modal .form-label { color: #304c54; font-size: .73rem; font-weight: 800; }
.admin-message-compose textarea, .admin-message-edit-modal textarea { min-height: 112px; padding: 12px 14px; background: #fbfdfc; border-color: #dce7e4; border-radius: 8px; line-height: 1.65; resize: vertical; }
.admin-messages-shell .form-control:focus { border-color: #4d9e99; box-shadow: 0 0 0 .2rem rgba(62,166,159,.14); }
.admin-message-publish { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 42px; padding-inline: 16px; border-radius: 7px; }
.admin-message-publish svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.admin-message-list > .d-flex:first-child { gap: 14px; }
.admin-message-count { padding: 7px 11px; color: #216f73; background: #e5f4f0; border: 1px solid #cfe8e2; border-radius: 99px; font: 700 .65rem 'DM Mono', monospace; white-space: nowrap; }
.admin-message-table-shell { overflow-x: auto; border: 1px solid #e3ece9; border-radius: 10px; }
.admin-message-table { min-width: 680px; margin: 0; }
.admin-message-table thead th { padding: 13px 15px; color: #d7eeeb; background: linear-gradient(120deg, #102e3b, #174550 72%, #20656a); border-bottom: 1px solid rgba(91,203,190,.28); font: 700 .61rem 'DM Mono', monospace; letter-spacing: .09em; text-transform: uppercase; white-space: nowrap; }
.admin-message-table tbody tr { background: linear-gradient(105deg, #fff, #fcfefd); transition: background .18s ease, box-shadow .18s ease; }
.admin-message-table tbody tr:nth-child(even) { background: #f7fbfa; }
.admin-message-table tbody tr:hover { background: linear-gradient(100deg, #eef9f6, #f7fbff); box-shadow: inset 3px 0 #39a99e; }
.admin-message-table tbody td { padding: 15px; border-bottom-color: rgba(27,75,83,.075); }
.admin-message-table tbody tr:last-child td { border-bottom: 0; }
.admin-message-th-icon { display: inline-flex; width: 15px; height: 15px; margin-right: 7px; color: #65c9bd; vertical-align: -4px; }
.admin-message-th-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.admin-message-body { display: flex; align-items: flex-start; gap: 11px; min-width: 220px; color: #244550; font-size: .79rem; line-height: 1.65; overflow-wrap: anywhere; }
.admin-message-row-icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: #287d76; background: #e5f4f0; border: 1px solid #d4ebe5; border-radius: 10px; }
.admin-message-row-icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.admin-message-date { color: #61767a; font-size: .72rem; white-space: nowrap; }
.admin-message-status { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border: 1px solid transparent; border-radius: 99px; font-size: .65rem; font-weight: 800; white-space: nowrap; }
.admin-message-status > span { width: 6px; height: 6px; background: currentColor; border-radius: 50%; }
.admin-message-status--active { color: #247957; background: #e4f5eb; border-color: #cce8d7; }
.admin-message-status--inactive { color: #6c777b; background: #edf1f0; border-color: #e0e7e4; }
.admin-message-actions { display: flex; align-items: center; gap: 7px; }
.admin-message-actions form { display: inline-flex; margin: 0; }
.admin-message-icon-button { display: inline-grid; width: 36px; height: 36px; place-items: center; padding: 0; background: #fff; border: 1px solid #dce7e4; border-radius: 10px; box-shadow: 0 3px 9px rgba(8,35,45,.04); transition: transform .17s ease, color .17s ease, background .17s ease, box-shadow .17s ease; }
.admin-message-icon-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.admin-message-icon-button:hover { transform: translateY(-2px); box-shadow: 0 7px 15px rgba(8,35,45,.12); }
.admin-message-icon-button:focus-visible { outline: 3px solid rgba(47,143,150,.28); outline-offset: 2px; }
.admin-message-icon-button--edit { color: #25834b; background: #eff9f0; border-color: #cfe8d1; }
.admin-message-icon-button--edit:hover { color: #fff; background: linear-gradient(135deg, #34a85b, #23834b); border-color: transparent; }
.admin-message-icon-button--bulb-off { color: #626e73; background: #f0f2f3; border-color: #dce2e4; }
.admin-message-icon-button--bulb-off:hover { color: #fff; background: #58666c; border-color: #58666c; }
.admin-message-icon-button--bulb-on { color: #bb8614; background: #fff5cc; border-color: #f1d778; box-shadow: 0 0 12px rgba(246,204,80,.15); }
.admin-message-icon-button--bulb-on svg { filter: drop-shadow(0 0 4px rgba(246,193,46,.7)); }
.admin-message-icon-button--bulb-on:hover { color: #624609; background: #ffdf6e; border-color: #f5c642; box-shadow: 0 0 17px rgba(246,193,46,.37); }
.admin-message-icon-button--delete { color: #d13939; background: #fff1f0; border-color: #f1d0ce; }
.admin-message-icon-button--delete:hover { color: #fff; background: linear-gradient(135deg, #e34c4c, #bb252b); border-color: transparent; }
.admin-message-empty { display: grid; justify-items: center; padding: 40px 20px 36px; color: #61767a; text-align: center; }
.admin-message-empty > span { display: grid; width: 56px; height: 56px; margin-bottom: 13px; place-items: center; color: #287d76; background: #e5f4f0; border: 1px solid #d4ebe5; border-radius: 17px; }
.admin-message-empty svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.admin-message-empty strong { color: #244550; font-size: .9rem; }
.admin-message-empty p { margin: 4px 0 0; font-size: .74rem; }
.admin-message-edit-modal .modal-content { overflow: hidden; background: #fbfdfc; border: 1px solid #dce9e6; border-radius: 15px; box-shadow: 0 24px 70px rgba(4,29,38,.25); }
.admin-message-edit-modal .modal-header { align-items: center; padding: 20px 23px; background: linear-gradient(120deg, #f0f8f5, #fff); border-bottom: 1px solid #e1ece9; }
.admin-message-edit-modal .modal-title { color: var(--ink); font: 700 1.45rem/1.15 'Playfair Display', serif; }
.admin-message-edit-modal .modal-body { padding: 22px 23px 12px; }
.admin-message-edit-modal .modal-footer { padding: 12px 23px 22px; border-top: 0; }
@media (max-width: 991.98px) {
    .admin-messages-hero { grid-template-columns: minmax(230px, .85fr) minmax(0, 1.15fr); padding-right: 23px; padding-left: 30px; }
    .admin-message-flight { min-height: 220px; }
    .admin-message-flight-label { right: -4px; font-size: .49rem; }
}
@media (max-width: 767.98px) {
    .admin-messages-hero { grid-template-columns: 1fr; gap: 4px; padding: 26px 22px 15px; }
    .admin-messages-hero-copy { max-width: none; }
    .admin-messages-hero h2 { font-size: clamp(2rem, 8vw, 2.6rem); }
    .admin-message-flight { min-height: 205px; margin: -3px -10px 0; }
    .admin-message-flight-art { width: min(100%, 470px); }
    .admin-message-orbit--one { right: 15%; }
    .admin-message-orbit--two { right: 21%; }
    .admin-message-flight-label { right: 0; bottom: -1px; }
    .admin-message-compose, .admin-message-list { padding: 21px 18px; }
    .admin-message-list > .d-flex:first-child { align-items: flex-start !important; }
}
@media (max-width: 575.98px) {
    .admin-messages-hero { padding-right: 18px; padding-left: 18px; }
    .admin-message-flight { min-height: 165px; }
    .admin-message-flight-art { width: 112%; max-width: none; }
    .admin-message-orbit { width: 150px; height: 150px; }
    .admin-message-orbit--two { width: 125px; height: 125px; }
    .admin-message-flight-label { font-size: .43rem; }
    .admin-message-list > .d-flex:first-child { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    .admin-message-paper, .admin-message-cloud, .admin-message-envelope, .admin-message-trail, .admin-message-spark { animation: none !important; }
    .admin-message-paper { opacity: 0; }
    .admin-message-cloud { opacity: 1; }
}
