:root {
    --purple: #7044df;
    --purple-dark: #4b28b8;
    --blue: #2474df;
    --ink: #272532;
    --muted: #777385;
    --surface: #fff;
    --line: #e8e4f1;
    --shadow: 0 16px 40px rgba(68, 49, 121, .12);
}

/* Notifications */
.notification-shell {
    max-width: 980px;
}

.notification-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.notification-kicker {
    color: #6540cf;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .02em;
}

.notification-mark-all {
    border: 1px solid #d9cff6;
    border-radius: 999px;
    padding: 11px 17px;
    background: rgba(255, 255, 255, .82);
    color: #6540cf;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.notification-filters {
    display: flex;
    gap: 8px;
    margin: 22px 0 16px;
    padding: 5px;
    overflow-x: auto;
    border: 1px solid #e4ddf5;
    border-radius: 18px;
    background: rgba(255, 255, 255, .8);
}

.notification-filters button {
    flex: 1 0 auto;
    border: 0;
    border-radius: 13px;
    padding: 11px 18px;
    background: transparent;
    color: #706a7f;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.notification-filters button.active {
    background: linear-gradient(135deg, #7140e4, #4f79df);
    color: #fff;
    box-shadow: 0 9px 20px rgba(101, 64, 207, .18);
}

.notification-filters button span {
    display: inline-grid;
    min-width: 24px;
    height: 24px;
    margin-left: 5px;
    place-items: center;
    border-radius: 50%;
    background: rgba(106, 74, 206, .12);
}

.notification-filters button.active span {
    background: rgba(255, 255, 255, .22);
}

.notification-list {
    display: grid;
    gap: 12px;
    padding-bottom: 104px;
}

.notification-card {
    position: relative;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 18px;
    border: 1px solid #e1d9f3;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(48, 41, 83, .07);
}

.notification-card.is-unread {
    border-color: #9dbdf8;
    background: linear-gradient(135deg, #fff 35%, #f1f6ff);
}

.notification-card.is-read {
    opacity: .74;
    box-shadow: none;
}

.notification-type-icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    background: #eee8ff;
    color: #6540cf;
    font-size: 22px;
    font-weight: 900;
}

.notification-type-icon.type-payment {
    background: #fff0c8;
    color: #aa6a00;
}

.notification-type-icon.type-revision {
    background: #fff0dd;
    color: #dc7900;
}

.notification-type-icon.type-result {
    background: #e3f7e9;
    color: #16864a;
}

.notification-card-heading {
    display: flex;
    align-items: center;
    gap: 9px;
}

.notification-card h2 {
    margin: 0;
    color: #282434;
    font-size: 18px;
}

.notification-card p {
    margin: 4px 0 6px;
    color: #6f697c;
}

.notification-card time {
    color: #9992a6;
    font-size: 12px;
}

.notification-unread-dot {
    display: none;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #5d71e0;
}

.is-unread .notification-unread-dot {
    display: inline-block;
}

.notification-open {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: 14px;
    padding: 10px 13px;
    background: #f1ecff;
    color: #6540cf;
    font-weight: 800;
    text-decoration: none;
}

.notification-open span {
    font-size: 22px;
    line-height: 1;
}

.notification-empty {
    margin-top: 30px;
    padding: 52px 20px 130px;
    text-align: center;
}

.notification-empty-icon {
    display: grid;
    width: 68px;
    height: 68px;
    margin: 0 auto 17px;
    place-items: center;
    border-radius: 22px;
    background: #e4f6ea;
    color: #249858;
    font-size: 30px;
}

.notification-empty h2 {
    margin: 0 0 6px;
}

.notification-empty p {
    margin: 0;
    color: #7c7589;
}

@media (max-width: 640px) {
    .notification-header {
        align-items: stretch;
        flex-direction: column;
    }

    .notification-mark-all {
        align-self: flex-start;
    }

    .notification-card {
        grid-template-columns: 46px minmax(0, 1fr);
        padding: 15px;
    }

    .notification-type-icon {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }

    .notification-open {
        grid-column: 2;
        justify-self: start;
        margin-top: 3px;
    }
}

* { box-sizing: border-box; }
html { min-height: 100%; background: #eef6ff; }
body { margin: 0; min-height: 100vh; font-family: "Noto Sans Thai", sans-serif; color: var(--ink); }
a { color: inherit; text-decoration: none; }
button,
input,
select,
textarea,
option,
optgroup {
    font-family: "Noto Sans Thai", Tahoma, sans-serif;
}

button,
input,
select,
textarea {
    font-size: inherit;
}
button, .btn, a { -webkit-tap-highlight-color: transparent; }

body > form { min-height: 100vh; }
body > form > main { opacity: 0; transform: translateY(12px) scale(.995); transition: opacity .4s ease, transform .48s cubic-bezier(.2,.8,.2,1); }
body.page-ready > form > main { opacity: 1; transform: none; }
body.page-leaving > form > main { opacity: 0; transform: translateY(-8px) scale(.995); transition-duration: .26s; }

.btn { position: relative; overflow: hidden; min-height: 52px; border: 0; border-radius: 14px; padding: 13px 22px; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.btn:hover { transform: translateY(-2px); filter: saturate(1.08); }
.btn:active { transform: translateY(1px) scale(.985); }
.button-ripple { position: absolute; border-radius: 50%; pointer-events: none; background: rgba(255,255,255,.42); transform: scale(0); animation: button-ripple .58s ease-out; }
@keyframes button-ripple { to { transform: scale(2.6); opacity: 0; } }
.btn-primary { color: #fff; background: linear-gradient(135deg, #7347e1, #632ecf); box-shadow: 0 9px 20px rgba(103, 49, 207, .22); }
.btn-outline { color: var(--purple); border: 1.5px solid #916ce8; background: rgba(255,255,255,.74); }

.welcome-page { background: radial-gradient(circle at 15% 12%, rgba(255,255,255,.66), transparent 28%), linear-gradient(145deg, #c5e6ff 0%, #e0d1ff 44%, #bceeff 100%); }
.welcome-shell { width: min(100%, 540px); min-height: 100vh; margin: auto; display: grid; grid-template-rows: 54vh minmax(360px, 46vh); overflow: hidden; background: rgba(255,255,255,.22); }
.welcome-hero { position: relative; display: grid; place-items: center; text-align: center; padding: 40px 24px 60px; background: linear-gradient(155deg, rgba(204,173,255,.8), rgba(191,233,255,.76)); }
.science-pattern { position: absolute; inset: 0; opacity: .5; background: radial-gradient(circle at 16% 72%, transparent 0 12px, rgba(255,255,255,.8) 13px 15px, transparent 16px), radial-gradient(circle at 83% 32%, transparent 0 25px, rgba(255,255,255,.5) 26px 28px, transparent 29px), linear-gradient(35deg, transparent 48%, rgba(255,255,255,.22) 49% 51%, transparent 52%); background-size: 130px 130px, 220px 220px, 160px 160px; }
.page-ready .science-pattern { animation: pattern-drift 12s ease-in-out infinite alternate; }
@keyframes pattern-drift { to { background-position: 22px -14px, -18px 16px, 12px 10px; } }
.brand-lockup { position: relative; z-index: 1; color: #362373; }
.page-ready .brand-lockup { animation: welcome-rise .75s .08s both cubic-bezier(.2,.8,.2,1); }
@keyframes welcome-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.brand-lockup h1 { margin: 4px 0; font-size: clamp(3rem, 13vw, 4.2rem); line-height: 1; font-weight: 800; letter-spacing: -.07em; }
.brand-lockup p { margin: 8px 0; font-size: 1.02rem; font-weight: 600; }
.brand-lockup .event-kicker { font-size: .78rem; letter-spacing: .08em; }
.welcome-panel { position: relative; z-index: 2; margin-top: -38px; border-radius: 42px 42px 0 0; background: #fff; padding: 38px 26px max(30px, env(safe-area-inset-bottom)); text-align: center; display: flex; flex-direction: column; justify-content: space-between; }
.welcome-panel h2 { margin: 0 0 12px; color: #4826a5; font-size: 1.85rem; }
.welcome-panel p { margin: 0; color: var(--muted); line-height: 1.8; font-size: .94rem; }
.welcome-actions { display: grid; gap: 12px; margin-top: 22px; }
.page-ready .welcome-actions > * { animation: action-rise .5s both cubic-bezier(.2,.8,.2,1); }
.page-ready .welcome-actions > *:nth-child(1) { animation-delay: .25s; }
.page-ready .welcome-actions > *:nth-child(2) { animation-delay: .34s; }
.page-ready .welcome-actions > *:nth-child(3) { animation-delay: .43s; }
@keyframes action-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.text-link { color: var(--purple); font-weight: 600; padding: 6px; font-size: .9rem; }

.account-page { background: linear-gradient(165deg, #5f58e4 0 28%, #f9f8fc 28%); }
.account-shell { width: min(100%, 560px); min-height: 100vh; margin: auto; padding: 44px 18px 30px; }
.account-header { color: #fff; min-height: 160px; padding: 20px 12px 34px; display: flex; gap: 12px; align-items: flex-start; }
.account-heading { flex: 1; }
.language-toggle { flex: 0 0 auto; min-width: 76px; min-height: 44px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; color: rgba(255,255,255,.68); background: rgba(255,255,255,.13); backdrop-filter: blur(10px); cursor: pointer; }
.language-toggle span { padding: 0 2px; }
.language-toggle .active-language { color: #fff; font-weight: 800; }
.account-header h1 { margin: 0; font-size: 2rem; }
.account-header p { margin: 4px 0 0; opacity: .85; }
.back-link { font-size: 2.1rem; line-height: 1; width: 40px; height: 44px; display: grid; place-items: center; }
.form-card { background: rgba(255,255,255,.98); border-radius: 30px; box-shadow: var(--shadow); padding: 30px 22px; margin-top: -42px; }
.field { margin-bottom: 20px; }
.field label { display: block; font-weight: 600; margin-bottom: 8px; }
.label-en { display: block; margin-top: 1px; color: #8b8795; font-size: .72rem; font-weight: 500; letter-spacing: .01em; }
.heading-en { display: block; margin-top: 3px; font-size: .85rem; font-weight: 500; opacity: .82; letter-spacing: .03em; }
.text-en { color: inherit; opacity: .72; font-size: .86em; }
.field input { width: 100%; min-height: 50px; border: 1.5px solid #e2deeb; border-radius: 12px; padding: 12px 14px; outline: none; background: #fff; }
.field select { width: 100%; min-height: 50px; border: 1.5px solid #e2deeb; border-radius: 12px; padding: 10px 14px; outline: none; background: #fff; }
.field textarea { display:block; width:100%; min-height:180px; border:1.5px solid #e2deeb; border-radius:12px; padding:14px; color:var(--ink); background:#fff; outline:none; font:inherit; line-height:1.7; }
.field input:focus,.field textarea:focus { border-color: #8763e6; box-shadow: 0 0 0 4px rgba(112,68,223,.09); }
.password-wrap { position: relative; }
.password-wrap input { padding-right: 50px; }
.password-toggle { position: absolute; right: 4px; top: 3px; min-width: 44px; min-height: 44px; border: 0; background: transparent; color: var(--purple); cursor: pointer; }
.field-hint { display: block; color: var(--muted); margin-top: 5px; }
.field-error { display: none; color: #c6284e; margin-top: 5px; }
.was-validated input:invalid,
.was-validated select:invalid {
    border-color: #d94868;
}

.was-validated input:invalid ~ .field-error,
.was-validated select:invalid ~ .field-error,
.was-validated .password-wrap:has(input:invalid) ~ .field-error {
    display: block;
}
.form-card .btn { width: 100%; margin-top: 6px; }
.form-footer { text-align: center; color: var(--muted); margin: 22px 0 0; }
.form-footer a { color: var(--purple); font-weight: 700; }
.field-grid { display: grid; gap: 0 16px; }
.form-section-title { display: flex; align-items: center; gap: 11px; padding: 8px 0 16px; margin-top: 10px; border-top: 1px solid #eeeaf5; }
.form-section-title:first-of-type { border-top: 0; margin-top: 0; }
.form-section-title > span { flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg,#7b54e4,#5c31c4); font-weight: 700; }
.form-section-title strong, .form-section-title small { display: block; }
.form-section-title strong em { display: block; color: #746f7e; font-size: .73rem; font-style: normal; font-weight: 500; }
.form-section-title small { color: var(--muted); margin-top: 2px; }
.form-section-title small b { display: block; font-size: .78em; font-weight: 400; opacity: .78; }
.form-message { display: block; padding: 12px 14px; margin-bottom: 18px; border-radius: 12px; }
.error-message { color: #a91f43; background: #fff0f3; border: 1px solid #f4c8d3; }
.success-message { color: #277a3a; background: #eefaf0; border: 1px solid #c7e9ce; }
.warning-message { color: #916000; background: #fff8e4; border: 1px solid #eedb9c; }
.verification-note { color: var(--muted); text-align: center; font-size: .8rem; line-height: 1.6; }
.registration-success { text-align: center; padding: 24px 8px; }
.registration-success .success-icon { width: 70px; height: 70px; margin: 0 auto 18px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg,#6ed37a,#36a956); font-size: 2rem; font-weight: 800; }
.registration-success .invalid-icon { background: linear-gradient(145deg,#ef9a61,#db5268); }
.registration-success h1, .registration-success h2 { color: #4423a0; }
.registration-success p { color: var(--muted); line-height: 1.7; margin-bottom: 24px; }
.verification-shell { display: grid; align-items: center; }
.otp-entry { display: grid; gap: 14px; max-width: 360px; margin: 22px auto 0; }
.otp-entry input[type=text] { width: 100%; min-height: 62px; border: 2px solid #d9cfef; border-radius: 14px; text-align: center; font-size: 1.8rem; font-weight: 800; letter-spacing: .45em; color: #5630bd; outline: none; }
.otp-entry input[type=text]:focus { border-color: #7548dc; box-shadow: 0 0 0 5px rgba(112,68,223,.1); }
.otp-reference { display:block; margin:8px auto 0; text-align:center; color:#6742c7; font-weight:800; letter-spacing:.06em; }
.otp-resend { display:block; margin:12px auto 0; width:auto; min-height:44px; color:#6742c7; }
.login-shell { max-width: 520px; }
.login-card { padding-top: 30px; }
.login-options { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin: -4px 0 22px; font-size: .84rem; }
.login-options a { color: var(--purple); font-weight: 700; }
.remember-option { display: flex !important; align-items: center; gap: 7px; margin: 0 !important; cursor: pointer; }
.remember-option input { width: 18px; height: 18px; min-height: 0; accent-color: var(--purple); }
.login-card > .btn { width: 100%; }
.full-width { width: 100%; }
.login-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 5px; margin-bottom: 22px; border-radius: 14px; background: #f1eef7; }
.login-method { min-height: 42px; border: 0; border-radius: 10px; color: #777184; background: transparent; font-weight: 600; cursor: pointer; }
.login-method.active { color: #6336cb; background: #fff; box-shadow: 0 5px 14px rgba(62,43,105,.1); }
.login-mode-panel[hidden] { display: none !important; }
.otp-help { color: var(--muted); margin: 0 0 18px; text-align: center; font-size: .86rem; line-height: 1.65; }
.login-divider { display: flex; align-items: center; gap: 12px; color: var(--muted); margin: 24px 0 16px; font-size: .8rem; }
.login-divider::before, .login-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }

.app-page { background: linear-gradient(145deg, #f8f7ff, #edfbff); }
.app-shell { width: min(100%, 1180px); min-height: 100vh; margin: auto; padding: 0 16px 102px; }
.app-header { padding: 44px 4px 22px; display: flex; justify-content: space-between; align-items: flex-start; }
.opportunities-page { background: radial-gradient(circle at 14% 10%, rgba(255,255,255,.7), transparent 28%), linear-gradient(145deg, #c5e6ff 0%, #e0d1ff 46%, #c5f2ef 100%); }
.opportunities-page .app-shell { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(238,229,255,.96) 0, rgba(247,250,255,.98) 205px, #fff 430px); }
.opportunities-header { position: relative; min-height: 152px; padding: 42px 5px 28px; isolation: isolate; }
.opportunities-header > *:not(.app-science-pattern) { position: relative; z-index: 1; }
.app-science-pattern { position: absolute; z-index: 0; inset: 0 -16px -28px; opacity: .48; pointer-events: none; background: radial-gradient(circle at 76% 28%, transparent 0 22px, rgba(255,255,255,.7) 23px 25px, transparent 26px), radial-gradient(circle at 12% 70%, rgba(255,255,255,.62) 0 4px, transparent 5px), linear-gradient(38deg, transparent 48%, rgba(255,255,255,.28) 49% 51%, transparent 52%); background-size: 190px 190px, 58px 58px, 145px 145px; }
.opportunities-page .app-header .eyebrow { color: #5d35bb; }
.opportunities-page .app-header h1 { color: #302750; }
.app-header h1 { margin: 0; font-size: clamp(1.75rem, 5vw, 2.35rem); line-height: 1.25; }
.app-header p { margin: 2px 0 0; color: var(--muted); }
.app-header .eyebrow { color: var(--purple); font-weight: 700; font-size: .78rem; letter-spacing: .02em; }
.header-actions { display: flex; align-items: center; gap: 9px; }
.admin-events-link { min-height:46px; padding:11px 14px; border:1px solid #d8cfee; border-radius:999px; display:inline-flex; align-items:center; color:#6040ba; background:rgba(255,255,255,.86); box-shadow:0 8px 24px rgba(59,45,103,.08); font-size:.76rem; font-weight:700; }
.logout-button { min-height: 46px; padding: 8px 13px; border: 1px solid #e3dcef; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; color: #6a3bca; background: rgba(255,255,255,.88); box-shadow: 0 8px 24px rgba(59,45,103,.09); font-size: .78rem; transition: transform .2s ease, background .2s ease; }
.logout-button:hover { transform: translateY(-2px); background: #fff; }
.logout-button span { font-size: 1.2rem; line-height: 1; }
.opportunity-grid { display: grid; gap: 18px; }
.opportunity-card { position: relative; overflow: hidden; border: 1px solid rgba(103,92,190,.16); border-radius: 24px; padding: 22px 18px 18px; box-shadow: 0 16px 38px rgba(73,61,133,.11); background: linear-gradient(145deg, #fbfcff, #edf0ff); }
.page-ready .opportunity-card, .page-ready .submission-card { animation: card-enter .55s both cubic-bezier(.2,.8,.2,1); }
.page-ready .opportunity-card:nth-child(2), .page-ready .submission-card:nth-child(2) { animation-delay: .09s; }
.page-ready .submission-card:nth-child(3) { animation-delay: .16s; }
.page-ready .submission-card:nth-child(4) { animation-delay: .23s; }
@keyframes card-enter { from { opacity: 0; transform: translateY(20px) scale(.98); } to { opacity: 1; transform: none; } }
.opportunity-card.tone-gold { border-color: rgba(199,151,63,.2); background: linear-gradient(145deg, #fffdf9, #fff2dc); }
.card-decoration { position: absolute; width: 190px; height: 190px; right: -60px; top: -80px; border-radius: 50%; background: rgba(123,113,224,.10); }
.tone-gold .card-decoration { background: rgba(226,183,96,.13); }
.circle-icon { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 1.55rem; background: linear-gradient(145deg, #6d66df, #387fd8); box-shadow: 0 8px 18px rgba(73,88,190,.2); }
.tone-gold .circle-icon { background: linear-gradient(145deg, #e3b251, #c98627); box-shadow: 0 8px 18px rgba(181,126,35,.18); }
.opportunity-card h2 { position: relative; margin: 20px 0 4px; color: #46559d; font-size: 1.45rem; }
.program-title-en { position: relative; display: block; margin: -1px 0 8px; color: #858aaf; font-size: .76rem; font-weight: 600; }
.tone-gold h2 { color: #795a2a; }
.tone-gold .program-title-en { color: #a38b67; }
.opportunity-card > p { margin: 0; color: var(--muted); line-height: 1.65; max-width: 520px; }
.date-row { display: flex; gap: 9px; align-items: center; color: #5968a9; margin: 18px 0; font-size: .88rem; }
.tone-gold .date-row { color: #8f6b34; }
.card-action { width: 100%; color: #fff; background: linear-gradient(135deg, #7562db, #447fd4); box-shadow: 0 9px 20px rgba(79,86,190,.18); justify-content: space-between; }
.tone-gold .card-action { background: linear-gradient(135deg, #d9aa49, #c8892d); box-shadow: 0 9px 20px rgba(176,122,37,.16); }
.opportunity-card.tone-unavailable { border-color:#d8d8df; background:linear-gradient(145deg,#f7f7f9,#e9e9ee); box-shadow:0 12px 30px rgba(70,70,85,.08); }
.tone-unavailable .card-decoration { background:rgba(130,130,145,.09); }
.tone-unavailable .circle-icon { background:linear-gradient(145deg,#a9a9b4,#858692); box-shadow:none; }
.tone-unavailable h2,.tone-unavailable .program-title-en,.tone-unavailable .date-row { color:#777985; }
.opportunity-fees { position:relative; margin:0 0 16px; padding:12px 14px; border:1px solid rgba(104,88,170,.12); border-radius:15px; background:rgba(255,255,255,.68); }
.fee-heading { display:block; margin-bottom:6px; color:#5e5580; font-size:.76rem; }
.opportunity-fee-row { display:flex; justify-content:space-between; gap:12px; padding:5px 0; color:#706b79; font-size:.72rem; }
.opportunity-fee-row+.opportunity-fee-row { border-top:1px dashed #ddd8e5; }
.opportunity-fee-row b { color:#554197; white-space:nowrap; }
.tone-gold:not(.tone-unavailable) .opportunity-fee-row b { color:#8b651d; }
.tone-unavailable .opportunity-fees { border-color:#d7d7dd; background:rgba(255,255,255,.5); }
.tone-unavailable .opportunity-fee-row b,.tone-unavailable .fee-heading { color:#777985; }
.fee-empty { color:#918d99; font-size:.72rem; }
.fee-countdown { margin:8px 0 10px; padding:10px 12px; border-radius:12px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:#7c5a20; background:linear-gradient(135deg,#fff2cc,#ffe4b8); font-size:.72rem; }
.fee-countdown span { line-height:1.45; }
.fee-countdown span b { color:#9b4e13; }
.fee-countdown-value { flex:none; color:#8b4210; font-size:.82rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.tone-unavailable .fee-countdown { color:#777985; background:#e4e4e8; }
.card-action.registration-closed { pointer-events:none; cursor:not-allowed; }
.draft-choice-modal[hidden] { display:none; }
.draft-choice-modal { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:20px; }
.draft-choice-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(31,24,58,.48); backdrop-filter:blur(5px); }
.draft-choice-dialog { position:relative; width:min(100%,520px); padding:30px 24px 24px; border:1px solid rgba(111,78,205,.16); border-radius:28px; background:#fff; box-shadow:0 28px 80px rgba(39,27,78,.28); text-align:center; animation:draft-dialog-in .24s ease-out; }
.draft-choice-dialog h2 { margin:16px 0 8px; color:#2f2550; font-size:1.35rem; }
.draft-choice-dialog p { margin:0 auto 24px; max-width:430px; color:var(--muted); line-height:1.65; }
.draft-choice-icon { width:60px; height:60px; margin:auto; border-radius:20px; display:grid; place-items:center; color:#fff; font-size:1.5rem; background:linear-gradient(145deg,#7860e3,#5e35ce); box-shadow:0 12px 24px rgba(100,62,205,.22); }
.draft-choice-close { position:absolute; top:12px; right:14px; width:38px; height:38px; border:0; border-radius:50%; color:#796d91; background:#f4f0fb; font-size:1.35rem; cursor:pointer; }
.draft-choice-actions { display:grid; gap:10px; }
.draft-choice-actions .btn { width:100%; justify-content:center; }
body.modal-open { overflow:hidden; }
@keyframes draft-dialog-in { from { opacity:0; transform:translateY(16px) scale(.97); } to { opacity:1; transform:none; } }
@media (min-width:600px) { .draft-choice-actions { grid-template-columns:1fr 1fr; } }

.option-admin-shell { max-width:1180px; }
.option-create-panel h2,.option-group h2 { margin-top:0; }
.option-groups { display:grid; gap:12px; grid-template-columns:1fr; }
.option-group { min-height:0; padding:0; overflow:hidden; }
.option-group-header { display:flex; align-items:center; gap:12px; margin:0; padding:15px 17px; }
.option-group-toggle { min-width:0; flex:1; padding:0; border:0; display:flex; align-items:center; gap:13px; color:inherit; background:transparent; font:inherit; text-align:left; cursor:pointer; }
.option-group-toggle>div { min-width:0; flex:1; }
.option-group-toggle>b { padding:6px 10px; border-radius:999px; color:#6750a4; background:#f0ebfa; font-size:.68rem; white-space:nowrap; }
.option-group-chevron { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; color:#6541c4; background:#f1ebff; font-size:1.3rem; transition:transform .2s; }
.option-group.is-open .option-group-chevron { transform:rotate(180deg); }
.option-group-header small { color:#8a8195; }
.option-group-header h2 { margin:2px 0 0; }
.option-add-button { min-height:42px; padding:9px 15px; white-space:nowrap; }
.option-group-body { display:none; padding:0 17px 17px; border-top:1px solid #eee8f5; }
.option-group.is-open .option-group-body { display:block; animation:option-body-open .2s ease-out; }
@keyframes option-body-open{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.option-search-wrap { position:relative; margin:14px 0 7px; }
.option-search-wrap>span { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:#8069aa; font-size:1.2rem; }
.option-search { width:100%; min-height:46px; padding:10px 14px 10px 42px; border:1.5px solid #e1d9ec; border-radius:13px; color:#342d40; background:#fbfaff; outline:none; font:inherit; }
.option-search:focus { border-color:#8563d8; box-shadow:0 0 0 4px rgba(112,68,223,.08); }
.option-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.option-search-empty { margin:18px 0 2px; color:#908899; text-align:center; }
.option-empty { padding:24px 12px; border:1px dashed #ded6e9; border-radius:14px; color:#918a9b; text-align:center; background:#fbfaff; font-size:.76rem; }
.option-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:13px 0; border-top:1px solid #eee8f5; }
.option-row:first-child { border-top:0; }
.option-copy { display:flex; flex-direction:column; }
.option-row small { color:#8a8195; }
.option-copy em { margin-top:3px; color:#aaa3b2; font-size:.63rem; font-style:normal; }
.option-row>span { justify-self:end; padding:5px 9px; border-radius:999px; color:#267c47; background:#e8f8ee; font-size:.7rem; font-weight:800; }
.option-row.is-hidden { opacity:.58; }
.option-row.is-hidden>span { color:#777; background:#eee; }
.option-row-actions { grid-column:1/3; display:flex; gap:7px; }
.option-action { min-height:36px; padding:7px 11px; border:1px solid #e0d8ed; border-radius:10px; display:inline-flex; align-items:center; color:#67567f; background:#fff; font-size:.7rem; font-weight:800; }
.option-action.edit { color:#6339c7; background:#f5f0ff; }
.option-action.delete { margin-left:auto; border-color:#f1d5dc; color:#b23c54; background:#fff5f7; }
.option-modal-dialog { width:min(620px,100%); }
.option-modal-type { margin-bottom:16px; padding:12px 14px; border-radius:13px; display:flex; justify-content:space-between; color:#675d74; background:#f3eff9; }
.option-modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
@media(max-width:700px){.option-items{grid-template-columns:1fr}.option-group-header{padding:13px}.option-group-body{padding:0 13px 13px}.option-group-toggle>b{display:none}.option-group-header h2{font-size:1.05rem}.option-add-button{padding:8px 12px}.option-row-actions{flex-wrap:wrap}.option-action.delete{margin-left:0}.option-modal-actions>*{flex:1;text-align:center;justify-content:center}}

.submission-form-shell { max-width:960px; padding-bottom:110px; }
.submission-form-header { display:flex; gap:14px; align-items:center; margin-bottom:14px; }
.submission-form-header h1,.submission-form-header p { margin:0; }
.submission-form-header h1 { font-size:1.7rem; color:#282342; }
.submission-form-header p { color:#80778c; }
.attendee-registration-header {
    min-height: 92px;
    padding: 24px 4px 16px;
}

.attendee-header-back {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border: 1px solid #ddd4f0;
    border-radius: 14px;
    color: #6135c8;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 7px 18px rgba(72, 48, 130, .08);
    text-decoration: none;
}

.submission-header-copy {
    min-width: 0;
    flex: 1;
}

.submission-header-copy h1,
.submission-header-copy p {
    overflow-wrap: anywhere;
}

.submission-deadline {
    display: grid;
    flex: 0 0 auto;
    gap: 2px;
    padding: 10px 14px;
    border: 1px solid #e2dbef;
    border-radius: 14px;
    color: #81778e;
    background: rgba(255, 255, 255, .78);
    text-align: right;
}

.submission-deadline span {
    font-size: .7rem;
}

.submission-deadline strong {
    color: #302943;
    font-size: .86rem;
    white-space: nowrap;
}

@media (max-width: 620px) {
    .attendee-registration-header {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        align-items: center;
        gap: 10px 12px;
        min-height: 0;
        padding: 18px 0 14px;
    }

    .submission-form-header h1 {
        font-size: clamp(1.35rem, 6vw, 1.65rem);
        line-height: 1.25;
    }

    .submission-header-copy p {
        margin-top: 3px;
        font-size: .82rem;
    }

    .submission-deadline {
        grid-column: 2;
        grid-template-columns: auto 1fr;
        align-items: baseline;
        gap: 8px;
        padding: 8px 11px;
        text-align: left;
    }
}
.submission-project-summary { display:flex; justify-content:space-between; gap:12px; padding:13px 16px; border-radius:16px; color:#745f2c; background:#fff6df; }
.submission-steps { display:grid; grid-template-columns:repeat(5,1fr); gap:5px; margin:18px 0; }
.submission-steps button { min-height:58px; border:0; border-radius:14px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; color:#9992a4; background:#f1eef6; font:inherit; cursor:pointer; }
.submission-steps button b { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; background:#ded9e8; font-size:.72rem; }
.submission-steps button.active { color:#6541cd; background:#eee8ff; font-weight:800; }
.submission-steps button.active b,.submission-steps button.completed b { color:#fff; background:#6d45d8; }
.submission-form-card { padding:22px; border:1px solid #e7e0f0; border-radius:24px; background:rgba(255,255,255,.94); box-shadow:0 16px 42px rgba(62,48,105,.1); }
.submission-step { display:none; animation:card-enter .32s both; }
.submission-step.active { position:relative; z-index:5; display:block; }
.submission-step h2 { margin:0 0 18px; color:#31284a; }
.submission-step textarea { resize:vertical; }
.pretty-select-native { position:absolute!important; width:1px!important; height:1px!important; min-height:1px!important; padding:0!important; border:0!important; opacity:0; pointer-events:none; }
.pretty-select { position:relative; z-index:4; width:100%; font-family:"Noto Sans Thai",sans-serif; }
.pretty-select.is-open { z-index:12; }
.pretty-select-button { width:100%; min-height:54px; padding:11px 14px 11px 16px; border:1.5px solid #ded6ed; border-radius:14px; display:flex; align-items:center; justify-content:space-between; gap:12px; color:#312b3c; background:linear-gradient(145deg,#fff,#fcfaff); box-shadow:0 5px 14px rgba(77,59,119,.04); font:inherit; font-size:.9rem; text-align:left; cursor:pointer; transition:border-color .2s,box-shadow .2s; }
.pretty-select-button:hover { border-color:#b7a5df; box-shadow:0 8px 20px rgba(88,62,151,.09); }
.pretty-select-button:focus { border-color:#805bdd; box-shadow:0 0 0 4px rgba(112,68,223,.1); outline:none; }
.pretty-select-button span.is-placeholder { color:#85808d; }
.pretty-select-button svg { width:21px; height:21px; fill:none; stroke:#6941ca; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s; }
.pretty-select.is-open .pretty-select-button svg { transform:rotate(180deg); }
.pretty-select-list { position:absolute; top:calc(100% + 7px); left:0; right:0; max-height:260px; padding:7px; border:1px solid #dfd6ef; border-radius:16px; display:none; overflow:auto; background:rgba(255,255,255,.98); box-shadow:0 18px 44px rgba(50,36,91,.18); backdrop-filter:blur(18px); }
.pretty-select.is-open .pretty-select-list { display:block; animation:pretty-select-open .18s ease-out; }
@keyframes pretty-select-open { from{opacity:0;transform:translateY(-6px) scale(.985)} to{opacity:1;transform:none} }
.pretty-select-option { width:100%; min-height:44px; padding:10px 12px; border:0; border-radius:11px; display:flex; align-items:center; color:#3d354a; background:transparent; font:inherit; font-size:.86rem; text-align:left; cursor:pointer; }
.pretty-select-option:hover,.pretty-select-option:focus { color:#5730b5; background:#f2edff; outline:none; }
.pretty-select-option.is-selected { color:#fff; background:linear-gradient(135deg,#7650dd,#5d36c6); font-weight:700; }
.pretty-select-option.is-placeholder { color:#96909d; }
.step-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.step-heading p { margin:-12px 0 18px; color:#8a8195; font-size:.78rem; }
.submission-form-actions { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid #eee8f4; }
.submission-form-actions .step-previous { grid-column:1; }
.submission-form-actions .step-next,.submission-form-actions .submit-final { grid-column:2; }
.submission-form-actions .save-draft { grid-column:1/3; grid-row:2; width:100%; }
.author-row { display:grid; grid-template-columns:34px repeat(3,minmax(0,1fr)) 38px; gap:8px; align-items:center; margin-bottom:12px; padding:12px; border:1px solid #ece6f3; border-radius:15px; background:#fcfbff; }
.author-row input { width:100%; min-height:46px; padding:9px 11px; border:1.5px solid #e1dbea; border-radius:11px; font:inherit; }
.author-order { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#7350d8; font-size:.72rem; font-weight:800; }
.author-row label { font-size:.72rem; white-space:nowrap; }
.remove-author { width:36px; height:36px; border:0; border-radius:10px; color:#b43d56; background:#fff0f3; font-size:1.2rem; cursor:pointer; }
.pdf-upload { display:grid; grid-template-columns:60px minmax(0,1fr); gap:14px; align-items:center; padding:20px; border:2px dashed #d8ceed; border-radius:18px; background:#fbf9ff; }
.pdf-upload input { grid-column:1/3; width:100%; }
.pdf-upload p { margin:3px 0 0; color:#887f93; font-size:.78rem; }
.pdf-icon { width:58px; height:58px; border-radius:15px; display:grid; place-items:center; color:#fff; background:#df4557; font-size:.78rem; font-weight:900; }
.submission-confirm { margin-top:16px; padding:15px; border-radius:15px; color:#665d75; background:#f3effa; }
.submission-confirm p { margin:5px 0 0; font-size:.78rem; }
@media(max-width:700px){.submission-steps button span{font-size:.61rem}.submission-form-card{padding:17px}.author-row{grid-template-columns:30px 1fr 38px}.author-row input,.author-row label{grid-column:2/3}.author-row .remove-author{grid-column:3;grid-row:1}.submission-form-actions .btn{width:100%}.step-heading{flex-direction:column}.step-heading .btn{width:100%}}
.empty-opportunities { padding: 42px 24px; border: 1px dashed #cfc5e3; border-radius: 24px; text-align: center; background: rgba(255,255,255,.72); }
.empty-opportunities h2 { margin: 0 0 6px; color: #5632b5; }
.empty-opportunities p { margin: 0; color: var(--muted); }

.bottom-nav { position: fixed; z-index: 20; left: 50%; bottom: max(10px, env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(calc(100% - 20px), 620px); min-height: 72px; padding: 7px; border: 1px solid rgba(108,91,171,.11); border-radius: 22px; background: rgba(255,255,255,.91); box-shadow: 0 12px 34px rgba(54,43,104,.16); backdrop-filter: blur(20px); display: grid; grid-template-columns: repeat(5, 1fr); }
.nav-item { position: relative; min-height: 56px; border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: #9995a5; font-size: .69rem; transition: color .2s ease, background .2s ease, transform .2s ease; }
.nav-item:hover { color: #6f64a1; }
.nav-item:active { transform: scale(.96); }
.nav-item.active { color: #6544cf; background: linear-gradient(145deg, #f2edff, #ebe9ff); font-weight: 700; }
.nav-icon { width: 25px; height: 25px; display: grid; place-items: center; line-height: 1; }
.nav-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.notification-nav-icon { position: relative; }
.notification-nav-badge {
    position: absolute;
    top: -8px;
    right: -12px;
    display: grid;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    place-items: center;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #e54252;
    color: #fff;
    box-shadow: 0 4px 10px rgba(211, 43, 62, .3);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
}
.nav-item.active .nav-icon { filter: drop-shadow(0 4px 5px rgba(101,68,207,.18)); }

.decorative-header { position: relative; }
.submission-list { display: grid; gap: 13px; }
.submission-process-active { order: 10; }
.submission-process-complete { order: 100; }
.submission-card { position:relative; background: #fff; border:1px solid rgba(105,84,177,.08); border-radius: 20px; padding: 18px; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 14px; align-items: start; box-shadow: 0 10px 28px rgba(57,45,94,.09); }
.submission-card.submission-draft-card {
    border: 1.5px dashed #aaa5b2;
    background: linear-gradient(145deg, #fbfbfc, #f0f1f4);
    box-shadow: 0 10px 24px rgba(61, 61, 75, .08);
}

.submission-card.submission-draft-card::before {
    background: rgba(121, 124, 135, .08);
}

.submission-draft-card .my-card-type.presenter-type {
    color: #64606c;
    background: #e5e4e8;
}

.submission-draft-card .submission-content h2 {
    color: #494651;
}

.submission-draft-card .submission-content p,
.submission-draft-card .submission-content .my-card-event {
    color: #7e7a85;
}

.submission-draft-card .document-icon {
    color: #6e6a76;
    background: #e5e5e9;
}

.submission-draft-card .submission-meta .status-pill {
    color: #5f5b66;
    background: #dedde2;
}

.submission-draft-card .draft-card-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 13px;
}

.submission-draft-card .draft-continue-button {
    min-height: 42px;
    padding: 9px 17px;
    border-radius: 12px;
}

.submission-draft-card .draft-delete-button {
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid #f0cbd3;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    color: #b63e55;
    background: #fff2f4;
    font-weight: 800;
}
.submission-card.my-card-attendee,.submission-card.my-card-presenter{overflow:hidden;border-width:1px;box-shadow:0 14px 34px rgba(51,45,86,.11);transition:transform .18s ease,box-shadow .18s ease}.submission-card.my-card-attendee:before,.submission-card.my-card-presenter:before{content:"";position:absolute;right:-42px;top:-58px;width:150px;height:150px;border-radius:50%;pointer-events:none}.submission-card.my-card-attendee{border-color:#cfdcff;background:linear-gradient(145deg,#fff 0%,#f3f6ff 100%)}.submission-card.my-card-attendee:before{background:rgba(77,117,224,.09)}.submission-card.my-card-presenter{border-color:#f2d59d;background:linear-gradient(145deg,#fff 0%,#fff8e9 100%)}.submission-card.my-card-presenter:before{background:rgba(229,163,40,.1)}.submission-card.my-card-attendee .document-icon{color:#356fd6;background:#e3edff}.submission-card.my-card-presenter .document-icon:not(.tone-gray){color:#b87408;background:#fff0ce}.submission-card.my-card-attendee:hover,.submission-card.my-card-presenter:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(51,45,86,.14)}.my-card-type{display:inline-flex;align-items:center;margin:0 0 8px;padding:4px 8px;border-radius:999px;font-size:.62rem;font-weight:800;letter-spacing:.1px}.my-card-type.attendee-type{color:#315fb9;background:#e3edff}.my-card-type.presenter-type{color:#9a6000;background:#ffedc5}.submission-content .my-card-event{margin:0 0 7px;color:#665c78;font-size:.68rem;line-height:1.4}.submission-content .my-card-event:before{content:"◆";margin-right:5px;color:#9c8db6;font-size:.46rem;vertical-align:2px}
.submission-card.my-card-presenter.submission-draft-card {
    border: 1.5px dashed #aaa5b2;
    background: linear-gradient(145deg, #fafafa 0%, #eceef2 100%);
    box-shadow: 0 10px 24px rgba(61, 61, 75, .08);
}

.submission-card.my-card-presenter.submission-draft-card::before {
    background: rgba(110, 106, 118, .08);
}

.draft-emphasis-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0 0 8px 5px;
    padding: 4px 9px;
    border: 1px solid #cac7d0;
    border-radius: 999px;
    color: #55515d;
    background: #fff;
    font-size: .62rem;
    font-weight: 900;
}

.submission-draft-card .submission-meta .status-pill {
    border: 1px solid #cbc8d1;
    color: #504c58;
    background: #e4e3e8;
    font-weight: 800;
}
.draft-edit-note { display:inline-flex; margin-top:7px; color:#6541cd; font-size:.74rem; font-weight:800; }
.my-card-delegated-label {
    display: inline-flex;
    margin-left: 5px;
    padding: 4px 8px;
    border-radius: 999px;
    color: #956000;
    background: #fff0c8;
    font-size: .62rem;
    font-weight: 800;
}
.document-icon { width: 48px; height: 54px; margin-top:1px; border-radius: 14px; display: grid; place-items: center; color: #2f7ee0; background: #e7f2ff; font-size: 1.5rem; }
.document-icon.tone-green { color: #4b9b41; background: #ebf8e8; }
.document-icon.tone-purple { color: #8051d5; background: #f1eaff; }
.document-icon.tone-gray { color: #7a7c85; background: #f0f0f3; }
.submission-content { min-width: 0; }
.my-card-attendee .submission-content,.my-card-presenter .submission-content{position:relative;z-index:1}
.submission-content h2 { margin: 0 0 6px; padding-right:84px; font-size: .9rem; line-height: 1.45; }
.submission-content p { margin: 1px 0; color: var(--muted); font-size: .73rem; }
.submission-meta { position:absolute; z-index:2; top:12px; right:12px; display:flex; flex-direction:column; align-items:flex-end; gap:5px; pointer-events:none; }
.status-pill { display: inline-flex; white-space: nowrap; border-radius: 999px; padding: 5px 8px; font-size: .67rem; font-weight: 600; color: #2871cf; background: #e7f2ff; }
.status-pill.tone-green { color: #3b8a3a; background: #ebf8e8; }
.status-pill.tone-gold { color: #ac7100; background: #fff2ca; }
.status-pill.tone-gray { color: #777985; background: #efeff2; }
.paid-status-pill{gap:4px;font-weight:800}.paid-status-pill>span{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#39a864;color:#fff;font-size:.58rem}
.review-passed-pill {
    gap: 4px;
    font-weight: 800;
}

.review-passed-pill::before {
    content: "✓";
    display: inline-grid;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    place-items: center;
    color: #fff;
    background: #39a864;
    font-size: .58rem;
    line-height: 1;
}
.unpaid-status-pill{gap:4px;color:#a66100;background:#fff0cd;font-weight:800}.unpaid-status-pill>span{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#e49a1d;color:#fff;font-size:.62rem}
.chevron { color: #8c8995; font-size: 1.5rem; }
.floating-action { position: fixed; z-index:20; right: max(22px, calc((100vw - 1180px) / 2 + 22px)); bottom: calc(92px + env(safe-area-inset-bottom)); width: 54px; height: 54px; box-sizing:border-box; border: 0; border-radius: 50%; display:grid; place-items:center; color: #fff; background: linear-gradient(145deg, #7c50e3, #5e2dcc); box-shadow: 0 10px 25px rgba(96,45,204,.3); cursor: pointer; text-decoration:none; }
.floating-action svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:2.25; stroke-linecap:round; }
.page-ready .floating-action { animation: floating-in .5s .35s both cubic-bezier(.2,.8,.2,1); }
@keyframes floating-in { from { opacity: 0; transform: scale(.6) rotate(-20deg); } to { opacity: 1; transform: none; } }
.prototype-toast { display: none; position: fixed; z-index: 99; left: 50%; bottom: 96px; transform: translateX(-50%); width: min(calc(100% - 32px), 480px); padding: 14px 18px; color: #fff; background: rgba(39,32,59,.94); border-radius: 14px; text-align: center; box-shadow: var(--shadow); font-size: .86rem; }

@media (min-width: 700px) {
    .welcome-page, .account-page { padding: 28px; }
    .welcome-shell { min-height: calc(100vh - 56px); border-radius: 36px; box-shadow: 0 26px 70px rgba(56,44,107,.2); grid-template-rows: 48% 52%; }
    .account-shell { min-height: calc(100vh - 56px); }
    .opportunity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .app-shell { padding-left: 28px; padding-right: 28px; }
    .opportunities-page { padding: 28px; }
    .opportunities-page .app-shell { min-height: calc(100vh - 56px); border-radius: 36px; box-shadow: 0 26px 70px rgba(56,44,107,.2); }
    .submission-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .submission-card { min-height: 150px; }
    .field-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .name-grid { grid-template-columns: 140px repeat(2, minmax(0,1fr)); }
}

@media (max-width: 430px) {
    .admin-events-link { padding:10px; font-size:.68rem; }
    .logout-button { width: 46px; padding: 8px; justify-content: center; }
    .logout-button b { display: none; }
}

@media (min-width: 1024px) {
    .app-shell { padding: 0 42px 42px 150px; }
    .app-header { padding-top: 54px; }
    .opportunities-header { min-height: 178px; padding-top: 54px; }
    .bottom-nav { left: max(18px, calc((100vw - 1180px) / 2 + 18px)); top: 50%; bottom: auto; transform: translateY(-50%); width: 94px; min-height: 500px; padding: 12px 9px; border: 1px solid rgba(108,91,171,.11); grid-template-columns: 1fr; grid-template-rows: repeat(5, 86px); align-content: center; border-radius: 28px; }
    .nav-item { border-radius: 18px; }
    .opportunity-card { min-height: 390px; padding: 32px; display: flex; flex-direction: column; }
    .opportunity-card > p { flex: 1; }
    .submission-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .floating-action { bottom: 32px; }
    .prototype-toast { bottom: 32px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
    body > form > main { opacity: 1; transform: none; }
}

.admin-page { background: radial-gradient(circle at 12% 8%, rgba(255,255,255,.74), transparent 28%), linear-gradient(145deg,#c9e7ff,#e1d4ff 48%,#cdf1ec); }

.admin-portal-shortcut {
    position: fixed;
    z-index: 1500;
    top: max(12px, env(safe-area-inset-top));
    left: max(12px, env(safe-area-inset-left));
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    border: 1px solid rgba(108, 68, 220, .22);
    border-radius: 999px;
    padding: 9px 14px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 10px 28px rgba(56, 42, 100, .16);
    color: #6337d8;
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
    backdrop-filter: blur(12px);
    transition: transform .18s ease, box-shadow .18s ease;
}

.admin-portal-shortcut:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(56, 42, 100, .22);
}

.admin-portal-shortcut svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 640px) {
    .admin-portal-shortcut {
        width: 44px;
        padding: 10px;
        justify-content: center;
    }

    .admin-portal-shortcut span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
}
.admin-shell { width: min(calc(100% - 28px), 1120px); min-height: calc(100vh - 32px); margin: 16px auto; padding: 24px 16px 46px; border-radius: 30px; background: linear-gradient(180deg,rgba(239,231,255,.97),#f9fbff 260px,#fff 520px); box-shadow: 0 24px 68px rgba(59,43,109,.18); }
.admin-header { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:12px 4px 24px; }
.admin-kicker { color:#6844c8; font-size:.76rem; font-weight:700; }
.admin-header h1 { margin:3px 0; color:#302750; font-size:clamp(1.7rem,5vw,2.45rem); }
.admin-header p { margin:0; color:var(--muted); }
.admin-header-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.admin-create-button { min-height:44px; padding:10px 15px; }
.event-card-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.admin-event-card { position:relative; min-height:138px; padding:16px; border:1px solid rgba(100,82,173,.14); border-radius:22px; display:grid; grid-template-columns:58px minmax(0,1fr); gap:13px; align-items:center; text-align:left; color:var(--ink); background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(241,240,255,.95)); box-shadow:0 12px 30px rgba(61,47,111,.09); cursor:pointer; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.admin-event-card:hover { transform:translateY(-2px); border-color:#a99ae0; box-shadow:0 16px 34px rgba(61,47,111,.13); }
.admin-event-card.selected { border:2px solid #7658d5; background:linear-gradient(145deg,#fff,#eeebff); }
.admin-event-icon { width:58px; height:58px; border-radius:18px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#7961dc,#477fd4); }
.admin-event-icon span { font-size:.72rem; font-weight:800; }
.admin-event-content { min-width:0; }
.admin-event-content small { color:#7455cb; font-weight:800; }
.admin-event-content h2 { margin:3px 0 5px; overflow:hidden; color:#373044; font-size:.96rem; line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.admin-event-content p { margin:0; color:#85808f; font-size:.72rem; }
.event-status { position:absolute; top:12px; right:12px; padding:4px 8px; border-radius:999px; color:#716b7d; background:#f0eef3; font-size:.64rem; font-weight:700; }
.event-card-edit { position:absolute; right:12px; bottom:12px; min-height:38px; padding:8px 11px; border-radius:11px; display:inline-flex; align-items:center; gap:5px; color:#6544c8; background:#eee9ff; font-size:.72rem; font-weight:800; }
.event-card-edit svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.event-public-button { position:absolute; z-index:3; right:84px; bottom:12px; min-height:38px; padding:8px 12px; border:0; border-radius:11px; color:#fff; background:linear-gradient(135deg,#7650df,#477fd4); font:inherit; font-size:.72rem; font-weight:800; cursor:pointer; }
.event-public-button.is-public { color:#5f5870; background:#ece8f3; }
.event-public-button[aria-busy="true"] { opacity:.58; cursor:wait; }
.event-public-button.update-failed { animation:project-button-error .45s ease; }
.event-status.status-published { color:#217640; background:#e7f8e9; }
.event-status.status-draft { color:#77717f; background:#eeeaf3; }
.event-card-detail-hitbox { position:absolute; z-index:1; inset:0; border-radius:inherit; }
.admin-event-card .event-status,.admin-event-card .event-card-edit { z-index:2; }
.event-detail-dialog { width:min(760px,100%); }
.event-detail-hero { display:grid; grid-template-columns:72px minmax(0,1fr); align-items:center; gap:16px; padding:18px; border-radius:22px; color:#382b61; background:linear-gradient(145deg,#f5f1ff,#edf3ff); }
.event-detail-year { width:72px; height:72px; border-radius:22px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#7961dc,#477fd4); font-weight:800; }
.event-detail-hero span { color:#7053cf; font-size:.76rem; font-weight:800; }
.event-detail-hero h3 { margin:4px 0; font-size:1.24rem; }
.event-detail-hero p { margin:0; color:#81798d; font-size:.78rem; }
.event-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:16px; }
.event-detail-grid>div,.event-detail-description { padding:14px; border:1px solid #ece7f3; border-radius:16px; background:#fcfbff; }
.event-detail-grid small,.event-detail-description small { display:block; margin-bottom:4px; color:#8a8195; font-size:.7rem; font-weight:700; }
.event-detail-grid strong { color:#40384e; font-size:.86rem; }
.event-detail-description { margin-top:10px; }
.event-detail-description p { margin:0; color:#655e70; line-height:1.65; white-space:pre-line; }
.event-detail-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.event-detail-projects { margin-top:18px; }
.event-detail-projects .admin-section-title { margin-bottom:14px; }
@media(max-width:580px){.event-detail-hero{grid-template-columns:58px minmax(0,1fr);padding:14px}.event-detail-year{width:58px;height:58px;border-radius:18px}.event-detail-grid{grid-template-columns:1fr}.event-detail-actions{display:grid;grid-template-columns:1fr 1fr}.event-detail-actions .btn{width:100%}}
.status-published { color:#398047; background:#eaf7ec; }
.status-open { color:#398047; background:#eaf7ec; }
.status-closed { color:#8a6240; background:#f7ede3; }
.status-suspended { color:#a56413; background:#fff1d9; }
.status-archived { color:#777985; background:#efeff2; }
.add-event-card { display:flex; align-items:center; justify-content:center; border:1.5px dashed #b9add9; color:#6745c5; background:rgba(255,255,255,.55); font-size:.9rem; font-weight:800; }
.program-section-heading { position:relative; }
.add-program-button { margin-left:auto; min-height:44px; padding:9px 14px; }
.program-new-row { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.new-program-type,.new-program-code { min-height:42px; border:1px solid #ddd5eb; border-radius:11px; padding:8px 11px; background:#fff; }
.admin-back { min-height:44px; padding:11px 15px; border:1px solid #d9cfed; border-radius:999px; color:#6241bd; background:rgba(255,255,255,.78); font-weight:700; white-space:nowrap; }
.admin-message { display:block; margin:0 0 16px; }
.admin-toolbar { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; padding:16px; margin-bottom:16px; border:1px solid rgba(105,81,179,.12); border-radius:20px; background:rgba(255,255,255,.82); }
.admin-toolbar-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.edit-event-toggle { min-height:48px; padding:10px 18px; }
.modal-open { overflow:hidden; }
.event-modal { display:none; position:fixed; z-index:100; inset:0; padding:22px; align-items:center; justify-content:center; }
.event-modal.is-open { display:flex; }
.event-modal-backdrop { position:absolute; inset:0; background:rgba(38,29,67,.48); backdrop-filter:blur(7px); animation:modal-fade .2s both; }
.event-modal-dialog { position:relative; z-index:1; width:min(900px,100%); max-height:calc(100vh - 44px); margin:0; overflow:auto; animation:modal-rise .28s both cubic-bezier(.2,.8,.2,1); }
.event-modal-top { position:sticky; z-index:3; top:-20px; margin:-20px -20px 20px; padding:20px; display:flex; justify-content:space-between; align-items:flex-start; gap:12px; border-bottom:1px solid #ece7f3; background:rgba(255,255,255,.95); backdrop-filter:blur(16px); }
.event-modal-top h2 { margin:2px 0 0; font-size:1.35rem; }
.event-modal-close { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; color:#665c76; background:#f3f0f7; font-size:1.8rem; line-height:1; }
@keyframes modal-fade { from{opacity:0} to{opacity:1} }
@keyframes modal-rise { from{opacity:0;transform:translateY(18px) scale(.98)} to{opacity:1;transform:none} }
.event-form-actions { display:flex; align-items:center; gap:10px; }
.event-form-actions .admin-save { margin-top:20px; }
.close-event-form { margin-top:20px; }
.event-copy-box { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px; margin-top:18px; border:1px solid #e5dfef; border-radius:16px; background:#faf8ff; }
.event-copy-box strong,.event-copy-box small { display:block; }
.event-copy-box small { margin-top:2px; color:var(--muted); font-size:.72rem; }
.projects-section .admin-section-title .btn { margin-left:auto; min-height:44px; }
.event-projects-inside { margin-top:22px; padding-top:20px; border-top:1px solid #ece7f3; }
.event-projects-inside .admin-section-title .btn { margin-left:auto; min-height:44px; }
.project-card-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.project-admin-card { padding:16px; border:1px solid rgba(91,102,184,.16); border-radius:18px; background:linear-gradient(145deg,#fbfcff,#edf1ff); }
.project-admin-card.project-presenter { border-color:rgba(194,146,53,.18); background:linear-gradient(145deg,#fffdfa,#fff3dc); }
.project-admin-card small { color:#7565b5; font-weight:700; }
.project-admin-card h3 { margin:5px 0; }
.project-admin-card p { margin:0 0 12px; color:var(--muted); font-size:.76rem; }
.project-admin-card a { display:inline-flex; padding:8px 10px; border-radius:10px; color:#6343c2; background:rgba(255,255,255,.76); font-size:.74rem; font-weight:800; }
.project-card-heading { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.project-visibility { padding:5px 8px; border-radius:999px; font-size:.66rem; font-weight:800; }
.project-visibility.is-public { color:#217640; background:#e7f8e9; }
.project-visibility.is-hidden { color:#77717f; background:#eeeaf3; }
.project-schedule-status { display:inline-flex; margin:0 0 13px; font-size:.7rem; }
.project-schedule-status.is-open { color:#237841; }
.project-schedule-status.is-upcoming { color:#9a690d; }
.project-schedule-status.is-closed { color:#8a6470; }
.project-fee-summary { padding:11px; margin:0 0 13px; border:1px solid rgba(103,83,168,.12); border-radius:13px; background:rgba(255,255,255,.68); }
.project-fee-summary>small { display:block; margin-bottom:6px; color:#776e83; font-size:.68rem; }
.project-fee-period { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:5px 0; color:#655e70; font-size:.69rem; }
.project-fee-period+.project-fee-period { border-top:1px dashed #e2ddeb; }
.project-fee-period strong { color:#554197; white-space:nowrap; }
.project-presenter .project-fee-period strong { color:#8b651d; }
.fee-plan-empty { color:#928b99; font-size:.7rem; }
@media(max-width:420px){.project-fee-period{align-items:flex-start;flex-direction:column;gap:2px}}
.project-card-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.project-card-actions a,.project-card-actions .project-public-button,.project-card-actions .project-delete-button { min-height:36px; padding:8px 10px; border:0; border-radius:10px; display:inline-flex; align-items:center; color:#6343c2; background:rgba(255,255,255,.78); font:inherit; font-size:.72rem; font-weight:800; cursor:pointer; text-decoration:none; }
.project-card-actions .project-public-button { color:#fff; background:linear-gradient(135deg,#7650df,#477fd4); }
.project-card-actions .project-public-button.is-public { color:#5f5870; background:#ece8f3; }
.project-card-actions .project-public-button[aria-busy="true"] { opacity:.58; cursor:wait; }
.project-card-actions .project-public-button.update-failed { animation:project-button-error .45s ease; }
@keyframes project-button-error { 0%,100%{transform:translateX(0)} 30%{transform:translateX(-3px)} 70%{transform:translateX(3px)} }
.project-card-actions .project-delete-button { margin-left:auto; color:#b43d56; background:#fff0f3; }
.project-public-note { margin-top:16px; padding:12px 14px; border-radius:14px; color:#685e7a; background:#f4f0ff; font-size:.75rem; }
.fee-plan-section { margin-top:20px; padding:17px; border:1px solid #e9e3f2; border-radius:20px; background:#fbfaff; }
.fee-plan-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:13px; }
.fee-plan-heading h3,.fee-plan-heading p { margin:0; }
.fee-plan-heading h3 { font-size:1rem; }
.fee-plan-heading p { margin-top:2px; color:#8a8195; font-size:.7rem; }
.fee-plan-heading button { min-height:42px; padding:9px 12px; border:0; border-radius:12px; color:#fff; background:linear-gradient(135deg,#7650df,#477fd4); font:inherit; font-size:.74rem; font-weight:800; cursor:pointer; }
.fee-plan-header,.fee-plan-row { display:grid; grid-template-columns:1fr 1fr .8fr 40px; gap:8px; align-items:center; }
.fee-plan-header { padding:0 4px 7px; color:#7c7488; font-size:.68rem; font-weight:700; }
.fee-plan-row { margin-top:8px; }
.fee-plan-row input { width:100%; min-height:44px; padding:9px 10px; border:1.5px solid #e0daea; border-radius:11px; background:#fff; font:inherit; }
.fee-plan-row.is-invalid input { border-color:#d94868; box-shadow:0 0 0 3px rgba(217,72,104,.12); }
.fee-date-wrap { position:relative; display:block; }
.fee-date-wrap .fee-date { padding-right:48px; }
.fee-calendar-button { position:absolute; z-index:2; top:4px; right:4px; width:36px; height:36px; border:0; border-radius:9px; display:grid; place-items:center; color:#6948cb; background:#f0eaff; font-size:1.1rem; cursor:pointer; }
.fee-calendar-button:hover { background:#e6ddff; }
.fee-native-date { position:absolute !important; right:4px; bottom:0; width:1px !important; min-height:1px !important; padding:0 !important; border:0 !important; opacity:0; pointer-events:none; }
.remove-fee-period { width:40px; height:40px; border:0; border-radius:11px; color:#b43d56; background:#fff0f3; font-size:1.25rem; cursor:pointer; }
@media(max-width:620px){.fee-plan-heading{align-items:stretch;flex-direction:column}.fee-plan-heading button{width:100%}.fee-plan-header{display:none}.fee-plan-row{grid-template-columns:1fr 1fr 40px;padding:12px;border:1px solid #ece6f3;border-radius:14px;background:#fff}.fee-plan-row .fee-amount{grid-column:1/3}.fee-plan-row .remove-fee-period{grid-column:3;grid-row:1/3;height:100%}}
.registration-closed { color:#80798a !important; background:#e9e6ee !important; box-shadow:none !important; cursor:not-allowed !important; }
.empty-projects { padding:32px 18px; border:1.5px dashed #c2b7dc; border-radius:18px; text-align:center; color:#827b8d; background:#fcfbff; }
.event-options-title { margin:26px 0 14px; padding-top:22px; border-top:1px solid #ece7f3; }
.event-options-title h2 { margin:0; font-size:1.15rem; }
.event-options-title small { color:var(--muted); }
.event-option-card { padding:17px; margin-top:12px; border:1px solid rgba(97,91,180,.15); border-radius:20px; background:linear-gradient(145deg,#fbfcff,#f0f2ff); }
.event-option-card.presenter-option { border-color:rgba(190,145,58,.17); background:linear-gradient(145deg,#fffdfa,#fff4e1); }
.event-option-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; }
.event-option-heading strong,.event-option-heading small { display:block; }
.event-option-heading strong { color:#46559d; font-size:1rem; }
.presenter-option .event-option-heading strong { color:#795a2a; }
.event-option-heading small { margin-top:2px; color:#8b8795; font-size:.68rem; font-weight:700; }
.option-switch { min-height:42px; padding:8px 11px; border-radius:999px; display:flex !important; grid-auto-flow:column; align-items:center; gap:7px !important; color:#5f4daf !important; background:rgba(255,255,255,.8); cursor:pointer; }
.option-switch input { width:18px !important; min-height:18px !important; accent-color:#6d50d0; }
.admin-toolbar label,.program-picker { display:grid; gap:6px; color:#575163; font-size:.82rem; font-weight:700; }
.admin-toolbar select,.program-picker select { min-width:250px; min-height:48px; border:1px solid #ddd5eb; border-radius:12px; padding:8px 12px; background:#fff; }
.copy-controls { display:flex; gap:8px; }
.copy-controls input { width:110px; min-height:48px; border:1px solid #ddd5eb; border-radius:12px; padding:8px 12px; }
.copy-controls .btn { min-height:48px; }
.admin-card { padding:20px; margin-bottom:16px; border:1px solid rgba(105,81,179,.11); border-radius:24px; background:rgba(255,255,255,.94); box-shadow:0 12px 34px rgba(64,48,111,.09); }

/* Admin portal */
.admin-portal-shell {
    max-width: 1240px;
}

.admin-portal-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 30px;
    border: 1px solid rgba(111, 72, 220, .12);
    border-radius: 30px;
    background:
        radial-gradient(circle at 88% 10%, rgba(117, 184, 255, .3), transparent 30%),
        linear-gradient(135deg, #f0e8ff, #e8f4ff);
}

.admin-portal-hero h1 {
    margin: 5px 0 2px;
    color: #28203f;
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.admin-portal-hero p,
.admin-portal-account span,
.admin-portal-metric small,
.admin-portal-action small,
.admin-portal-menu small {
    color: var(--muted);
}

.admin-portal-account {
    display: grid;
    min-width: 210px;
    gap: 2px;
    padding: 15px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .78);
}

.admin-portal-account a {
    margin-top: 6px;
    color: #6c3edb;
    font-weight: 800;
}

.admin-portal-event-bar {
    display: grid;
    grid-template-columns: auto minmax(240px, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin: 18px 0;
    padding: 14px 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 10px 30px rgba(62, 48, 106, .07);
}

.admin-portal-event-bar label,
.admin-portal-event-bar a {
    color: #5e3ac2;
    font-weight: 800;
}

.admin-portal-event-bar select {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid #ded4f4;
    border-radius: 14px;
    background: #fff;
    font: inherit;
}

.admin-portal-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}

.admin-portal-metric {
    display: grid;
    min-height: 132px;
    padding: 17px;
    border: 1px solid rgba(101, 78, 180, .12);
    border-radius: 22px;
    background: rgba(255, 255, 255, .9);
    color: inherit;
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.admin-portal-metric:hover,
.admin-portal-metric:focus-visible {
    border-color: rgba(101, 78, 180, .34);
    box-shadow: 0 12px 24px rgba(70, 52, 132, .12);
    transform: translateY(-2px);
}

.admin-portal-metric:focus-visible {
    outline: 3px solid rgba(108, 76, 224, .22);
    outline-offset: 3px;
}

.admin-portal-metric strong {
    align-self: center;
    color: #5731c8;
    font-size: 2rem;
}

.metric-unpaid { background: linear-gradient(145deg, #fffdf8, #fff2cf); }
.metric-staff { background: linear-gradient(145deg, #f9fcff, #e4f2ff); }
.metric-reviewer { background: linear-gradient(145deg, #fffdf7, #ffefcf); }
.metric-revision { background: linear-gradient(145deg, #fff9f5, #ffe7da); }
.metric-complete { background: linear-gradient(145deg, #f8fff9, #ddf5e4); }

.admin-portal-section {
    margin-top: 26px;
}

.admin-portal-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 12px;
}

.admin-portal-section-heading h2 {
    margin: 3px 0 0;
}

.admin-portal-section-heading > a {
    color: #6541cb;
    font-weight: 800;
}

.admin-portal-actions,
.admin-portal-menu,
.admin-portal-project-grid {
    display: grid;
    gap: 12px;
}

.admin-portal-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-portal-action {
    display: grid;
    grid-template-columns: 48px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border: 1px solid rgba(103, 73, 193, .14);
    border-radius: 20px;
    background: rgba(255, 255, 255, .92);
    color: #28203f;
}

.admin-portal-action span:nth-child(2) {
    display: grid;
}

.admin-portal-action-icon,
.admin-portal-menu i {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    background: linear-gradient(145deg, #7041df, #5578df);
    color: #fff;
    font-style: normal;
}

.admin-portal-action b {
    display: grid;
    place-items: center;
    min-width: 36px;
    height: 36px;
    border-radius: 999px;
    background: #eee8ff;
    color: #6036d1;
}

.admin-portal-menu {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-portal-menu a {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 18px;
    border: 1px solid rgba(102, 75, 185, .13);
    border-radius: 22px;
    background: rgba(255, 255, 255, .92);
    color: #29213f;
    transition: transform .18s ease, box-shadow .18s ease;
}

.admin-portal-menu a:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(65, 45, 125, .11);
}

.admin-portal-menu span {
    display: grid;
}

.admin-portal-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-portal-project {
    padding: 20px;
    border: 1px solid #d9dff7;
    border-radius: 22px;
    background: linear-gradient(145deg, #fbfdff, #eaf0ff);
    color: #28203f;
}

.admin-portal-project.project-presenter {
    border-color: #f2ddb1;
    background: linear-gradient(145deg, #fffdfa, #fff1d7);
}

.admin-portal-project > span {
    color: #6d49cb;
    font-size: .78rem;
    font-weight: 800;
}

.admin-portal-project h3 {
    margin: 5px 0 10px;
}

.admin-portal-project div {
    color: var(--muted);
    font-size: .88rem;
}

.admin-portal-empty {
    text-align: center;
}

@media (max-width: 980px) {
    .admin-portal-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-portal-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .admin-portal-hero {
        align-items: stretch;
        flex-direction: column;
        padding: 22px 18px;
    }

    .admin-portal-account {
        min-width: 0;
    }

    .admin-portal-event-bar {
        grid-template-columns: 1fr auto;
    }

    .admin-portal-event-bar label {
        grid-column: 1 / -1;
    }

    .admin-portal-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-portal-metric {
        min-height: 118px;
        padding: 14px;
    }

    .admin-portal-actions,
    .admin-portal-menu,
    .admin-portal-project-grid {
        grid-template-columns: 1fr;
    }

    .admin-portal-action {
        grid-template-columns: 42px 1fr auto;
    }

    .admin-portal-action-icon,
    .admin-portal-menu i {
        width: 42px;
        height: 42px;
    }
}
.admin-section-title { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.admin-section-title>span { width:42px; height:42px; border-radius:14px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#7961dc,#477fd4); font-weight:800; }
.admin-section-title h2 { margin:0; font-size:1.2rem; }
.admin-section-title small { color:var(--muted); }
.admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.admin-grid label { display:grid; align-content:start; gap:7px; color:#565061; font-size:.84rem; font-weight:700; }
.admin-grid input,.admin-grid select,.admin-grid textarea { width:100%; min-height:48px; border:1.5px solid #e0daea; border-radius:12px; padding:10px 12px; color:var(--ink); background:#fff; outline:none; font:inherit; }
.admin-grid textarea { resize:vertical; }
.admin-grid input:focus,.admin-grid select:focus,.admin-grid textarea:focus { border-color:#8567dd; box-shadow:0 0 0 4px rgba(112,68,223,.08); }
.span-2 { grid-column:1/-1; }
.admin-save { margin-top:20px; min-width:210px; }
.program-picker { margin-bottom:16px; }
.program-type-pill { display:inline-flex; padding:6px 10px; margin-bottom:14px; border-radius:999px; color:#6241bd; background:#f0eaff; font-size:.75rem; font-weight:800; }
.admin-scope-note { margin:20px 0 0; color:#8a8493; text-align:center; font-size:.78rem; }
.admin-login-shell { max-width:520px; }
.admin-login-badge { display:inline-flex; padding:7px 11px; margin-bottom:20px; border-radius:999px; color:#6241bd; background:#f0eaff; font-size:.74rem; font-weight:800; letter-spacing:.02em; }
.permissions-shell { max-width:900px; }
.permission-entry { display:flex; gap:10px; }
.permission-entry input { flex:1; min-height:50px; border:1.5px solid #e0daea; border-radius:12px; padding:10px 13px; }
.permission-list { display:grid; gap:10px; }
.permission-item { display:grid; grid-template-columns:46px minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px; border:1px solid #ece7f3; border-radius:16px; background:#fbfaff; }
.permission-item.inactive { opacity:.55; }
.permission-avatar { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#7961dc,#477fd4); font-weight:800; }
.permission-item strong,.permission-item small { display:block; }
.permission-item small { margin-top:2px; color:#777385; font-size:.75rem; }
.permission-revoke { min-height:42px; padding:10px 12px; border-radius:12px; color:#ad3651; background:#fff0f3; font-size:.76rem; font-weight:700; }
@media(max-width:680px){.admin-shell{width:100%;min-height:100vh;margin:0;border-radius:0;padding:20px 14px 38px}.admin-header{padding-top:8px}.admin-header p,.admin-kicker{display:none}.admin-back{font-size:.76rem}.admin-create-button{width:100%;order:-1}.event-card-list{grid-template-columns:1fr;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 10px}.admin-event-card{min-width:82vw;scroll-snap-align:start}.add-event-card{min-width:56vw}.admin-toolbar{align-items:stretch;flex-direction:column}.admin-toolbar label,.admin-toolbar select{width:100%;min-width:0}.admin-toolbar-actions{width:100%;display:grid;grid-template-columns:1fr}.edit-event-toggle{width:100%}.copy-controls{width:100%}.copy-controls input{width:96px}.copy-controls .btn{flex:1;padding:10px}.admin-card{padding:17px 15px}.admin-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.admin-save{width:100%}.event-form-actions{display:grid;grid-template-columns:1fr 1fr}.event-form-actions .btn{min-width:0;width:100%}.event-option-card{padding:14px}.event-option-heading{align-items:flex-start;flex-direction:column}.option-switch{align-self:stretch;justify-content:center}.program-section-heading{align-items:flex-start}.add-program-button{padding:8px 10px;font-size:.72rem}}
@media(max-width:520px){.permission-entry{flex-direction:column}.permission-entry .btn{width:100%}.permission-item{grid-template-columns:42px minmax(0,1fr)}.permission-avatar{width:42px;height:42px}.permission-revoke{grid-column:1/-1;text-align:center}.admin-header-links{max-width:150px}.admin-header-links .admin-back:nth-child(2){display:none}}
@media(max-width:680px){.event-modal{padding:0;align-items:stretch}.event-modal-dialog{width:100%;max-height:100vh;border-radius:0;padding:17px 15px}.event-modal-top{top:-17px;margin:-17px -15px 18px;padding:17px 15px}.event-copy-box{align-items:stretch;flex-direction:column}.event-copy-box .copy-controls{width:100%}.event-copy-box .copy-controls input{flex:1;width:auto}}
@media(max-width:680px){.project-card-list{grid-template-columns:1fr}.projects-section .admin-section-title{align-items:flex-start}.projects-section .admin-section-title .btn{padding:8px 10px;font-size:.72rem}}
@media(max-width:680px){.event-projects-inside .admin-section-title{align-items:flex-start}.event-projects-inside .admin-section-title .btn{padding:8px 10px;font-size:.72rem}}

.otp-remember-option { display:flex; margin:14px 0; }
.datetime-picker-wrap { position:relative; display:block; }
.date-picker-wrap { position:relative; display:block; }
.date-picker-wrap .thai-date-input { padding-right:54px; }
.date-calendar-button { position:absolute; top:5px; right:5px; width:40px; height:38px; border:0; border-radius:10px; display:grid; place-items:center; color:#6948cb; background:#f0eaff; font-size:1.25rem; cursor:pointer; }
.date-calendar-button:hover { background:#e6ddff; }
.native-date-picker { position:absolute !important; right:5px; bottom:0; width:1px !important; min-height:1px !important; padding:0 !important; border:0 !important; opacity:0; pointer-events:none; }
.datetime-picker-wrap .thai-datetime-input { padding-right:54px; }
.calendar-picker-button { position:absolute; top:5px; right:5px; width:40px; height:38px; border:0; border-radius:10px; display:grid; place-items:center; color:#6948cb; background:#f0eaff; font-size:1.25rem; cursor:pointer; transition:transform .16s ease,background .16s ease; }
.calendar-picker-button:hover { background:#e6ddff; transform:translateY(-1px); }
.calendar-picker-button:focus-visible { outline:3px solid rgba(109,69,220,.22); outline-offset:2px; }
.native-datetime-picker { position:absolute !important; right:5px; bottom:0; width:1px !important; min-height:1px !important; padding:0 !important; border:0 !important; opacity:0; pointer-events:none; }
.cookie-consent { position:fixed; z-index:1000; left:50%; bottom:max(18px,env(safe-area-inset-bottom)); width:min(720px,calc(100% - 32px)); padding:18px; border:1px solid rgba(109,69,220,.16); border-radius:24px; display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:15px; color:#2f2745; background:rgba(255,255,255,.96); box-shadow:0 22px 60px rgba(52,39,90,.22); backdrop-filter:blur(18px); opacity:0; transform:translate(-50%,18px); transition:opacity .22s ease,transform .22s ease; }
.cookie-consent[hidden] { display:none; }
.cookie-consent.is-visible { opacity:1; transform:translate(-50%,0); }
.cookie-consent-icon { width:48px; height:48px; border-radius:16px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#7961dc,#477fd4); font-size:1.7rem; font-weight:800; }
.cookie-consent-copy h2 { margin:0 0 3px; font-size:1rem; }
.cookie-consent-copy p { margin:0; color:#746d80; font-size:.75rem; line-height:1.55; }
.cookie-consent-actions { display:flex; gap:8px; }
.cookie-consent-actions button { min-height:44px; padding:10px 14px; border:0; border-radius:13px; font:inherit; font-size:.74rem; font-weight:800; cursor:pointer; white-space:nowrap; }
.cookie-primary { color:#fff; background:linear-gradient(135deg,#7650df,#477fd4); box-shadow:0 8px 20px rgba(99,68,194,.22); }
.cookie-secondary { color:#635b72; background:#f2eff7; }
@media(max-width:680px){.cookie-consent{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);padding:16px;grid-template-columns:42px minmax(0,1fr);border-radius:22px}.cookie-consent-icon{width:42px;height:42px;border-radius:14px}.cookie-consent-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.cookie-consent-actions button{white-space:normal}}
@media(max-width:390px){.cookie-consent-actions{grid-template-columns:1fr}.cookie-secondary{order:2}}
.submission-step .is-invalid:not(.pretty-select-native),
.submission-step .pretty-select-native.is-invalid + .pretty-select .pretty-select-button {
    border-color: #d83b58 !important;
    box-shadow: 0 0 0 3px rgba(216, 59, 88, .12) !important;
}
.draft-card-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px; }
.draft-delete-button { padding:7px 11px; border:1px solid #f0cbd2; border-radius:10px; color:#bd3f56; background:#fff4f6; font-size:.78rem; font-weight:700; text-decoration:none; }
.draft-delete-button:hover { background:#ffe9ed; }
.submission-review-modal[hidden] { display:none; }
.submission-review-modal { position:fixed; inset:0; z-index:1250; display:grid; place-items:center; padding:16px; }
.review-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(28,21,53,.55); backdrop-filter:blur(5px); }
.submission-review-dialog { position:relative; width:min(100%,760px); max-height:90vh; overflow:auto; padding:26px 20px; border-radius:28px; background:#fff; box-shadow:0 30px 90px rgba(32,22,68,.3); }
.submission-review-dialog>h2 { margin:0 42px 5px 0; color:#302451; }
.submission-review-dialog>p { margin:0 0 20px; color:var(--muted); }
.review-close { position:absolute; right:14px; top:14px; width:38px; height:38px; border:0; border-radius:50%; color:#736789; background:#f2eef9; font-size:1.3rem; }
.submission-review-content { display:grid; gap:12px; }
.review-section { padding:16px; border:1px solid #e5def2; border-radius:18px; background:#fbfaff; }
.review-section h3 { margin:0 0 10px; color:#633bc4; font-size:1rem; }
.review-section p { display:grid; grid-template-columns:minmax(110px,.8fr) minmax(0,1.4fr); gap:12px; margin:0; padding:7px 0; border-top:1px dashed #e6e0ee; }
.review-section p:first-child { border-top:0; }
.review-section span { color:#898196; font-size:.8rem; }
.review-section strong { color:#332d3d; font-size:.86rem; overflow-wrap:anywhere; }
.submission-review-actions { position:sticky; bottom:-26px; display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:20px -20px -26px; padding:15px 20px 20px; background:linear-gradient(transparent,#fff 18%); }
.submitted-card-actions { display:flex; flex-direction:column; align-items:flex-start; gap:7px; margin-top:12px; }
.submitted-card-actions .btn { min-height:40px; padding:8px 12px; font-size:.76rem; }
.submitted-card-actions .submission-edit-link { display:inline-flex; align-items:center; gap:4px; min-height:28px; padding:4px 7px; border-radius:8px; color:#6843cb; background:#f3efff; font-size:.66rem; font-weight:800; text-decoration:none; }
.submitted-card-actions .submission-edit-link span { font-size:.8rem; line-height:1; }
.submitted-card-actions .submission-edit-link:hover { background:#e9e1ff; transform:translateY(-1px); }
.attendee-delete-link { display:inline-flex; align-items:center; gap:4px; min-height:28px; padding:4px 8px; border:0; border-radius:8px; color:#b23b54; background:#fff0f3; font:inherit; font-size:.66rem; font-weight:800; text-decoration:none; cursor:pointer; }
.attendee-delete-link:hover { color:#982b43; background:#ffe3e9; transform:translateY(-1px); }
.payment-window-note { display:block; width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid #ddd7e8; border-radius:11px; color:#6f687a; background:#f3f1f6; font-size:.7rem; font-weight:700; line-height:1.45; }
.payment-page-window { margin:-6px 0 16px; text-align:center; }
.payment-note { display:block; margin-top:8px; color:#9a6a18; }
.submission-card-clickable { cursor:pointer; }
.non-refund-warning { padding:10px; border-radius:12px; color:#9d4d21 !important; background:#fff3e8; font-weight:700; }
.success-payment-amount,.payment-amount { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:16px 0; padding:16px; border-radius:16px; background:#f3efff; color:#665d77; }
.success-payment-amount strong,.payment-amount strong { color:#6334d1; font-size:1.35rem; }
.payment-shell,.submission-detail-shell { padding-bottom:120px; }
.payment-card,.readonly-card { margin-top:20px; padding:22px; border:1px solid #e1daf0; border-radius:26px; background:#fff; box-shadow:0 18px 46px rgba(66,48,112,.1); }
.payment-card>h2 { margin:5px 0 20px; color:#2e2740; }
.payment-label { color:#8c829b; font-size:.78rem; }
.payment-terms { padding:18px; border-radius:18px; background:#fff8eb; color:#5a4b35; }
.payment-terms h3 { margin-top:0; }
.terms-check { display:flex; gap:10px; align-items:flex-start; margin:18px 0; font-weight:700; }
.terms-check input { width:22px; height:22px; accent-color:#6839d5; }
.payment-main-button { width:100%; }
.payment-unavailable-actions{margin-top:16px}.payment-unavailable-actions .payment-main-button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;text-decoration:none}
.mock-qr-panel { text-align:center; }
.mock-qr { width:220px; aspect-ratio:1; margin:20px auto; padding:18px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; border:10px solid #fff; outline:2px solid #282333; background:#fff; box-shadow:0 14px 35px rgba(42,34,66,.15); }
.mock-qr i { background:repeating-linear-gradient(45deg,#292331 0 8px,#fff 8px 14px); border:5px solid #292331; }
.mock-qr i:nth-child(even) { background:repeating-linear-gradient(-45deg,#292331 0 6px,#fff 6px 11px); }
.mock-qr-panel>strong { color:#5532b8; font-size:1.1rem; letter-spacing:1px; }
.mock-qr-panel small { display:block; margin-top:14px; color:#a06642; }
.payment-barcode-panel{padding-top:12px}.payment-barcode-scroll{width:100%;overflow-x:auto;padding:14px 0;background:#fff;border-radius:16px}.payment-barcode-svg{display:block;width:max(100%,760px);height:132px}.payment-reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.payment-reference-grid>div{padding:12px;border:1px solid #e4dcf2;border-radius:14px;background:#faf8ff;text-align:left}.payment-reference-grid span{display:block;color:#8d839b;font-size:.7rem;font-weight:700}.payment-reference-grid strong{display:block;margin-top:3px;color:#5532b8;font-size:.85rem;letter-spacing:.4px;overflow-wrap:anywhere}
.thai-qr-panel{width:min(520px,100%);margin:20px auto 0;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 20px 50px rgba(28,48,84,.16)}.thai-qr-brand{display:flex;align-items:center;justify-content:center;gap:14px;padding:22px;background:#12466f;color:#fff}.thai-qr-brand svg{width:66px;height:50px;fill:#fff}.thai-qr-brand .qr-brand-accent{fill:#19a994}.thai-qr-brand div{display:flex;flex-direction:column;text-align:left;line-height:.92}.thai-qr-brand b,.thai-qr-brand span{font-size:1.45rem;letter-spacing:.8px;font-weight:800}.thai-qr-body{padding:24px 24px 20px;text-align:center}.thai-qr-code{width:276px;height:276px;margin:0 auto 16px;padding:10px;box-sizing:border-box;overflow:hidden;background:#fff}.thai-qr-code canvas{display:block!important;width:256px!important;height:256px!important}.thai-qr-code img{display:none!important}.thai-qr-amount{display:inline-flex;gap:7px;align-items:center;padding:9px 14px;border-radius:8px;background:#ce3b35;color:#fff;font-size:.78rem;font-weight:700}.thai-qr-amount strong{font-size:.92rem}.thai-qr-countdown-wrap{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px auto 15px;color:#71687c;font-size:.74rem;font-weight:700}.thai-qr-countdown{width:max-content;margin:0;padding:8px 13px;border-radius:7px;background:#2396b3;color:#fff;font-size:1rem;font-weight:800;letter-spacing:.7px}.thai-qr-countdown.is-expired{background:#a7a0ae}.thai-qr-body h3{margin:10px 0 6px;padding:12px;border:1px solid #dce2e9;background:#f8fafc;color:#48434e;font-size:.95rem}.thai-qr-instruction{margin:14px 0;color:#b64a45;font-size:.78rem;font-weight:700}.thai-qr-body>small{display:block;color:#8f8499;font-size:.68rem;line-height:1.5}
@media(max-width:699px){.payment-reference-grid{grid-template-columns:1fr}.payment-barcode-svg{width:720px;height:124px}}
@media(max-width:699px){.thai-qr-panel{border-radius:20px}.thai-qr-brand{padding:18px}.thai-qr-brand svg{width:54px}.thai-qr-brand b,.thai-qr-brand span{font-size:1.15rem}.thai-qr-body{padding:18px 14px}.thai-qr-code{width:244px;height:244px}.thai-qr-code canvas{width:224px!important;height:224px!important}}
.payment-success-modal[hidden]{display:none}.payment-success-modal .draft-choice-dialog{text-align:center}.payment-success-modal .draft-choice-icon{background:linear-gradient(145deg,#39c87a,#169b58);box-shadow:0 14px 30px rgba(26,157,91,.25)}.payment-success-close{display:block;width:100%;box-sizing:border-box;margin-top:18px;background:linear-gradient(135deg,#30bd72,#159653);box-shadow:0 12px 26px rgba(24,151,83,.22)}
.readonly-heading { padding-bottom:18px; border-bottom:1px solid #eee8f6; }
.readonly-heading h2 { margin:14px 0 4px; }
.readonly-heading p { margin:0; color:var(--muted); }
.readonly-card>h3 { margin:24px 0 10px; color:#5c38b5; }
.readonly-grid { display:grid; gap:10px; }
.readonly-grid>div { padding:12px 14px; border-radius:14px; background:#f8f6fc; }
.readonly-grid span { display:block; color:#91889f; font-size:.72rem; }
.readonly-grid strong { display:block; margin-top:3px; color:#342e3f; }
.readonly-authors { display:grid; gap:8px; }
.readonly-authors>div { padding:13px; border:1px solid #e7e0f1; border-radius:14px; }
.readonly-authors span { display:block; margin-top:4px; color:var(--muted); font-size:.78rem; }
.readonly-file { padding:14px; border-radius:14px; background:#f1edfb; color:#5c3db2; font-weight:700; }
@media (min-width:700px) { .readonly-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .payment-card,.readonly-card { padding:32px; } }
.existing-file-notice { display:block; margin-top:7px; color:#5d3db2; font-size:.76rem; font-weight:700; }
.submitted-card-actions .submission-pay-link { min-height:52px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:2px; line-height:1.25; }
.submission-pay-link span { font-size:.8rem; }
.submission-pay-link span b { font-size:.86rem; }
.submission-pay-link small { color:rgba(255,255,255,.82); font-size:.63rem; font-weight:600; }
.submission-pay-link .fee-countdown-value { color:#fff; font-size:.66rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
@media(max-width:699px){.submission-card{padding:16px}.submission-content h2{padding-right:78px}.submitted-card-actions{width:100%}.submitted-card-actions .submission-pay-link{width:100%;box-sizing:border-box}.payment-note{line-height:1.45}}
.attendee-form-shell { max-width:780px; }
.attendee-form-actions { grid-template-columns:1fr 1fr; }
.attendee-review-list { margin:16px 0; padding:4px 16px; border-radius:16px; text-align:left; background:#f7f4ff; }
.attendee-review-list p { display:grid; gap:3px; margin:0; padding:11px 0; border-bottom:1px solid #e7e0f3; }
.attendee-review-list p:last-child { border-bottom:0; }
.attendee-review-list span { color:#8a8295; font-size:.72rem; }
.attendee-review-list strong { color:#312b3b; font-size:.84rem; overflow-wrap:anywhere; white-space:pre-line; }
.admin-applicants-shell { max-width:1220px; }
.admin-project-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.admin-project-summary-card { padding:22px; border:1px solid #e1d9f3; border-radius:22px; color:#302944; background:linear-gradient(145deg,#fff,#f5f1ff); box-shadow:0 13px 32px rgba(70,48,130,.09); text-decoration:none; }
.admin-project-summary-top { display:flex; justify-content:space-between; gap:12px; color:#7051c7; font-size:.72rem; font-weight:800; }
.admin-project-summary-card h2 { margin:14px 0 3px; font-size:1.15rem; }.admin-project-summary-card>p{margin:0;color:#837b90;font-size:.75rem}
.admin-metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:18px 0; }.admin-metric-grid div{padding:11px 8px;border-radius:13px;text-align:center;background:#fff}.admin-metric-grid strong,.admin-metric-grid span{display:block}.admin-metric-grid strong{color:#6439c8;font-size:1.15rem}.admin-metric-grid span{margin-top:2px;color:#837b90;font-size:.62rem}
.admin-project-enter { color:#6439c8; font-size:.76rem; font-weight:800; }.admin-list-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.admin-list-heading h2,.admin-list-heading p{margin:0}.admin-list-heading p{color:#837b90}
.admin-applicant-list{display:grid;gap:11px}.admin-applicant-card{padding:17px 18px;border:1px solid #e5dff0;border-radius:18px;display:flex;justify-content:space-between;gap:16px;background:#fff}.admin-applicant-card h3{margin:5px 0;font-size:.95rem}.admin-applicant-card p,.admin-applicant-card small{margin:0;color:#827a8e;font-size:.72rem}.admin-applicant-reference{color:#6d47cb;font-size:.7rem;font-weight:800}.admin-applicant-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px}.admin-applicant-modal{width:min(760px,100%);box-sizing:border-box;padding:20px;border:1px solid rgba(104,72,190,.14);border-radius:26px;background:#fff;box-shadow:0 28px 80px rgba(36,27,70,.28);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.admin-applicant-modal .event-modal-top{box-sizing:border-box}.admin-applicant-modal .admin-grid{width:100%;min-width:0}.admin-applicant-modal .admin-grid label,.admin-applicant-modal .admin-grid input,.admin-applicant-modal .admin-grid select,.admin-applicant-modal .admin-grid textarea{box-sizing:border-box;min-width:0}.admin-applicant-modal .admin-save{min-height:50px;border-radius:14px}.admin-payment-heading{margin:28px 0 16px;padding:22px 0 0;border-top:1px solid #e8e2f0;color:#5d38b9;font-size:1.15rem}
.admin-applicant-main{min-width:0;flex:1}.admin-reviewer-tracking{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:13px;padding:10px 12px;border-radius:13px;background:#f6f3fc}.admin-reviewer-tracking div>span,.admin-reviewer-tracking div>strong{display:block}.admin-reviewer-tracking div>span{margin-bottom:2px;color:#8a8196;font-size:.68rem}.admin-reviewer-tracking div>strong{color:#44385d;font-size:.8rem}.admin-reviewer-tracking .status-pill{white-space:nowrap}
.admin-applicant-card{flex-wrap:wrap}.admin-applicant-card>.admin-reviewer-tracking{flex:1 0 100%;width:100%;box-sizing:border-box;margin-top:0}.admin-applicant-card>.admin-reviewer-tracking .admin-review-history{flex:1;min-width:0}.admin-applicant-card>.admin-reviewer-tracking .admin-review-ticket-row{justify-content:flex-end}.admin-applicant-card>.admin-reviewer-tracking .status-pill{max-width:100%;white-space:normal}
.admin-applicant-actions{min-width:min(520px,48%);align-items:flex-end;justify-content:flex-start;gap:9px}.admin-applicant-action-statuses,.admin-applicant-action-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.admin-applicant-action-buttons .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 12px;border-radius:12px;font-size:.75rem;line-height:1.2;box-shadow:none;white-space:nowrap}.admin-applicant-action-buttons .btn>span{font-size:.9rem;line-height:1}.admin-applicant-action-buttons .btn-primary{box-shadow:0 7px 16px rgba(102,54,207,.16)}@media(max-width:980px){.admin-applicant-card{flex-direction:column}.admin-applicant-actions{width:100%;min-width:0;align-items:stretch}.admin-applicant-action-statuses,.admin-applicant-action-buttons{justify-content:flex-start}}@media(max-width:560px){.admin-applicant-action-buttons{display:grid;grid-template-columns:1fr 1fr}.admin-applicant-action-buttons .btn{width:100%}.admin-applicant-action-buttons .btn:last-child:nth-child(odd){grid-column:1/-1}}
.admin-review-history{display:grid;justify-items:end;gap:6px}.admin-review-history .status-pill{display:block;max-width:100%;white-space:normal;text-align:left;line-height:1.35}.admin-review-history .status-pill+span{margin-top:0}@media(max-width:760px){.admin-review-history{width:100%;justify-items:stretch}.admin-review-history .status-pill{text-align:center}}
@media(max-width:760px){.admin-project-summary-grid{grid-template-columns:1fr}.admin-metric-grid{grid-template-columns:repeat(2,1fr)}.admin-applicant-card{flex-direction:column}.admin-applicant-actions{align-items:stretch}.admin-applicant-actions .btn{text-align:center;justify-content:center}.admin-reviewer-tracking{align-items:flex-start;flex-direction:column}}
@media(max-width:680px){.admin-applicant-modal{width:100%;max-height:100dvh;padding:17px 15px;border:0;border-radius:0}.admin-applicant-modal .event-modal-top{margin:-17px -15px 18px;padding:17px 15px}.admin-applicant-modal .event-modal-top h2{font-size:1.08rem;line-height:1.35}.admin-applicant-modal .admin-save{width:100%}}
@media(max-width:520px){.attendee-form-actions{grid-template-columns:1fr}.attendee-form-actions .btn{width:100%}}
.review-admin-shell{max-width:980px}.review-summary{position:relative;margin-bottom:14px;background:linear-gradient(145deg,#fff,#f4f1ff)}.review-summary h2{margin:7px 0}.review-summary p{margin:0 0 12px;color:#7c748a}.admin-help{margin:-6px 0 18px;color:#7f778d}.review-assignment-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.review-assignment-heading h2{margin:5px 0}.review-assignment-heading p{margin:0;color:#7e768a}.review-waiting{margin-top:18px;padding:18px;border-radius:16px;color:#776d85;background:#f4f1f8;text-align:center}.review-comment{margin:12px 0;padding:16px;border-radius:16px;background:#f7f4fc;line-height:1.65}.review-file-list{display:grid;gap:8px;margin:12px 0}.review-file-list a{padding:11px 13px;border-radius:12px;color:#613bc0;background:#f2edff;text-decoration:none;font-weight:700}.review-admin-actions,.review-submit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.reviewer-page{background:linear-gradient(145deg,#edf4ff,#f3edff)}.reviewer-shell{width:min(920px,calc(100% - 28px));margin:24px auto 80px}.reviewer-header{padding:28px;border-radius:28px;background:linear-gradient(145deg,#eee8ff,#e9f4ff)}.reviewer-header h1{margin:5px 0;font-size:2rem}.reviewer-header p{margin:0;color:#777083}.reviewer-card{margin-top:14px;padding:24px;border:1px solid rgba(100,75,180,.12);border-radius:24px;background:#fff;box-shadow:0 14px 38px rgba(48,38,82,.09)}.reviewer-login{max-width:560px;margin:18px auto;text-align:center}.reviewer-login label{text-align:left}.reviewer-login .btn{width:100%;margin-top:14px}.reviewer-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:18px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#7954df,#477fd4);font-size:1.4rem}.review-work-heading h2{margin:7px 0}.review-work-heading p{color:#7e768a}.review-decision-list{display:grid!important;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 18px}.review-decision-list input{position:absolute;opacity:0}.review-decision-list label{min-height:50px;border:1.5px solid #ded6ed;border-radius:14px;display:grid;place-items:center;cursor:pointer}.review-decision-list input:checked+label{border-color:#6c43d2;color:#5b31bf;background:#eee8ff;font-weight:800}.reviewer-card textarea{width:100%}.reviewer-card input[type=file]{padding:12px;border:1.5px dashed #d9cfeb;border-radius:14px;background:#faf8ff}.datetime-picker-wrap{position:relative;display:block}.datetime-picker-wrap .thai-datetime-input{padding-right:52px!important}
@media(max-width:620px){.reviewer-shell{width:100%;margin:0 auto 80px}.reviewer-header{border-radius:0;padding:22px 17px}.reviewer-card{margin:12px;border-radius:21px;padding:18px}.review-decision-list{grid-template-columns:1fr}.review-admin-actions,.review-submit-actions{display:grid}.review-admin-actions .btn,.review-submit-actions .btn{width:100%}.review-assignment-heading{flex-direction:column}}
.review-title-en{margin-top:-2px!important;font-style:italic}.review-assignment-meta{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.review-assignment-meta span{padding:8px 11px;border-radius:11px;background:#f4f1fb;color:#756d82}.review-section-heading{display:flex;gap:12px;align-items:center;margin-bottom:18px}.review-section-heading h2,.review-section-heading p{margin:0}.review-section-heading p{color:#867d92}.review-section-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:13px;color:#fff;background:linear-gradient(145deg,#7850e2,#4b83dc);font-weight:900}.review-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.review-detail-grid>div{padding:14px;border:1px solid #e6def2;border-radius:15px;background:#fcfbff}.review-detail-grid span{display:block;margin-bottom:4px;color:#887f94;font-size:.86rem}.review-detail-grid strong{display:block;line-height:1.45}.review-authors{margin-top:20px}.review-authors h3{margin:0 0 9px}.review-author-row{display:flex;gap:11px;padding:11px 0;border-top:1px solid #eee8f5}.review-author-row>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;color:#6538ca;background:#eee7ff;font-weight:800}.review-author-row small{display:block;margin-top:3px;color:#887f94}.review-result-card{border-top:4px solid #7244dc}.review-decision-list{list-style:none;padding:0}.review-decision-list li{min-width:0}.review-decision-list li label{width:100%}.review-field{display:block;margin-top:17px}.review-field>span{display:block;margin-bottom:7px;font-weight:800}.review-field>small{display:block;margin:-3px 0 8px;color:#887f94}.review-upload input[type=file]{width:100%;box-sizing:border-box}.review-submit-actions{justify-content:flex-end;padding-top:18px;border-top:1px solid #eee8f5}.review-submit-actions .btn{min-width:180px}@media(max-width:620px){.review-detail-grid{grid-template-columns:1fr}.review-assignment-meta{display:grid}.review-section-heading{align-items:flex-start}.review-submit-actions .btn{min-width:0}}
.review-document-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:20px;padding:16px;border:1px solid #dcd1f2;border-radius:18px;background:linear-gradient(135deg,#f7f2ff,#edf5ff);box-shadow:0 10px 26px rgba(74,49,142,.08)}.review-document-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(145deg,#ea4e5d,#bd283c);box-shadow:0 8px 18px rgba(184,40,59,.2);font-size:.76rem;font-weight:900}.review-document-copy span,.review-document-copy strong,.review-document-copy small{display:block}.review-document-copy span{color:#746984;font-size:.75rem}.review-document-copy strong{margin:3px 0;color:#322847;overflow-wrap:anywhere}.review-document-copy small{color:#8b8295}.review-document-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.review-document-buttons .btn{min-height:46px;padding:10px 15px}.review-document-viewer{display:none;margin-top:14px;border:1px solid #d9cfed;border-radius:20px;overflow:hidden;background:#302b3b;box-shadow:0 18px 42px rgba(42,32,69,.18)}.review-document-viewer.is-open{display:block;animation:modal-rise .22s both}.review-viewer-toolbar{height:54px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:#302a3e}.review-viewer-close{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:11px;color:#fff;background:rgba(255,255,255,.12);font-size:1.4rem;cursor:pointer}.review-document-viewer iframe{display:block;width:100%;height:min(74vh,820px);border:0;background:#fff}@media(max-width:700px){.review-document-card{grid-template-columns:46px minmax(0,1fr)}.review-document-icon{width:46px;height:46px;border-radius:14px}.review-document-buttons{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.review-document-buttons .btn{width:100%;text-align:center}.review-document-viewer{margin-left:-18px;margin-right:-18px;border-radius:0}.review-document-viewer iframe{height:72vh}}@media(max-width:420px){.review-document-buttons{grid-template-columns:1fr}}
.review-decision-list li label{border-color:transparent;color:#fff;font-weight:800;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.review-decision-list li:nth-child(1) label{background:#27a766;box-shadow:0 7px 16px rgba(39,167,102,.18)}.review-decision-list li:nth-child(2) label{background:#ef971f;box-shadow:0 7px 16px rgba(239,151,31,.18)}.review-decision-list li:nth-child(3) label{background:#dc4b57;box-shadow:0 7px 16px rgba(220,75,87,.18)}.review-decision-list li label:hover{transform:translateY(-1px)}.review-decision-list:has(input:checked) li label{border-color:#ddd9e4;color:#8b8692;background:#efedf2;box-shadow:none}.review-decision-list li:nth-child(1) input:checked+label{border-color:#198c51;color:#fff;background:#27a766;box-shadow:0 8px 20px rgba(39,167,102,.25)}.review-decision-list li:nth-child(2) input:checked+label{border-color:#d27a07;color:#fff;background:#ef971f;box-shadow:0 8px 20px rgba(239,151,31,.25)}.review-decision-list li:nth-child(3) input:checked+label{border-color:#c33140;color:#fff;background:#dc4b57;box-shadow:0 8px 20px rgba(220,75,87,.25)}.review-decision-list input:focus-visible+label{outline:3px solid rgba(91,62,184,.25);outline-offset:3px}
.review-field textarea{display:block;width:100%;min-height:190px;box-sizing:border-box;padding:16px 17px;border:1.5px solid #ded6ec;border-radius:17px;color:#30283d;background:#fcfbff;outline:none;resize:vertical;font:inherit;font-size:.95rem;line-height:1.65;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.review-field textarea::placeholder{color:#aaa2b4}.review-field textarea:hover{border-color:#cbbce6}.review-field textarea:focus{border-color:#7650d8;background:#fff;box-shadow:0 0 0 4px rgba(112,68,223,.1),0 10px 28px rgba(76,48,145,.08)}.review-upload input[type=file]{padding:8px!important;color:#776e83;background:#fbf9ff!important}.review-upload input[type=file]::file-selector-button{margin-right:12px;padding:9px 14px;border:0;border-radius:10px;color:#6438c8;background:#eee7ff;font:inherit;font-weight:800;cursor:pointer;transition:background .18s ease,color .18s ease}.review-upload input[type=file]::file-selector-button:hover{color:#fff;background:#7044d8}@media(max-width:620px){.review-field textarea{min-height:170px;padding:14px;border-radius:15px}}
.review-decision-list li:nth-child(1) label,.review-decision-list li:nth-child(2) label,.review-decision-list li:nth-child(3) label{border-color:#ddd9e4;color:#8b8692;background:#efedf2;box-shadow:none}
#PdfViewerPanel:target{display:block;animation:modal-rise .22s both}.review-viewer-close{text-decoration:none}
.review-validation-message{display:none;margin-top:7px;color:#c63d50;font-size:.8rem;font-weight:800}.review-validation-message.is-visible{display:block}.review-decision-list.has-validation-error{padding:5px;border:1.5px solid #dc4b57;border-radius:17px;background:#fff5f6;box-shadow:0 0 0 4px rgba(220,75,87,.08)}.review-field textarea.has-validation-error{border-color:#dc4b57;background:#fff8f8;box-shadow:0 0 0 4px rgba(220,75,87,.09)}
.ipad-pdf-write-button{color:#fff;background:linear-gradient(145deg,#ef971f,#dc7311);box-shadow:0 8px 18px rgba(224,121,17,.22)}.ipad-pdf-editor{position:fixed;z-index:1600;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#282532}.ipad-pdf-editor[hidden]{display:none}.ipad-editor-toolbar{padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#fff;background:#352f44}.ipad-editor-close,.ipad-editor-page-controls button,.ipad-editor-tools button{min-height:40px;padding:8px 12px;border:0;border-radius:11px;color:#fff;background:rgba(255,255,255,.12);font:inherit;font-weight:700}.ipad-editor-close{width:42px;font-size:1.4rem}.ipad-editor-page-controls,.ipad-editor-tools{display:flex;align-items:center;gap:7px}.ipad-editor-tools{margin-left:auto}.ipad-editor-tools .ink-color{border:2px solid transparent}.ipad-editor-tools .ink-color.is-active{border-color:#fff;background:var(--ink)}.ipad-save-pdf{min-height:42px;padding:8px 14px}.ipad-editor-stage{min-height:0;padding:16px;overflow:auto;text-align:center;background:#4a4652;overscroll-behavior:contain}.ipad-canvas-stack{position:relative;display:inline-block;line-height:0;box-shadow:0 10px 36px rgba(0,0,0,.32)}.ipad-canvas-stack canvas{display:block;max-width:none}.ipad-pdf-ink{position:absolute;inset:0;touch-action:none}.ipad-editor-status{min-height:24px;padding:8px 15px;color:#fff;background:#352f44;text-align:center;font-size:.84rem}@media(max-width:850px){.ipad-editor-toolbar>strong{width:calc(100% - 55px)}.ipad-editor-page-controls{order:3}.ipad-editor-tools{order:4;margin-left:0;overflow-x:auto}.ipad-save-pdf{order:5;margin-left:auto}}@media(max-width:620px){.ipad-editor-toolbar{padding:8px}.ipad-editor-stage{padding:8px}.ipad-editor-tools button{white-space:nowrap}}
.published-review-box{margin:20px 0;padding:18px;border:1px solid #dcd1f3;border-radius:18px;background:linear-gradient(145deg,#f5f0ff,#eef5ff)}.published-review-box h3{margin:0 0 8px!important;color:#5f38bd}.published-review-box p{margin:0;color:#665e72;line-height:1.65}
.reviewer-directory-shell{max-width:1080px}.reviewer-directory-form{margin-bottom:16px}.reviewer-directory-form h2{margin-top:0}.reviewer-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.reviewer-directory-card{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:13px;align-items:start}.reviewer-directory-card.is-inactive{opacity:.62}.reviewer-directory-avatar{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#7550dc,#4c80d6);font-size:1.25rem;font-weight:800}.reviewer-directory-card h2{margin:2px 0 5px;font-size:1rem}.reviewer-directory-card p,.reviewer-directory-card>div>a:not(.project-public-button),.reviewer-directory-card>div>span{display:block;margin:2px 0;color:#7a7286;font-size:.75rem}.reviewer-directory-card>div>a:not(.project-public-button){color:#623bc2}.reviewer-directory-actions{margin-top:12px}.reviewer-directory-actions a{margin:0;display:inline-flex}
@media(max-width:720px){.reviewer-directory-grid{grid-template-columns:1fr}.reviewer-directory-card{grid-template-columns:46px minmax(0,1fr)}.reviewer-directory-avatar{width:46px;height:46px}.reviewer-directory-card>.status-pill{position:absolute;right:14px;top:14px}}
.ipad-pdf-editor.is-open{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.reviewer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.review-help-button{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:8px 14px;border:1px solid rgba(105,65,207,.18);border-radius:14px;color:#6037c4;background:rgba(255,255,255,.72);font:inherit;font-size:.78rem;font-weight:900;cursor:pointer;box-shadow:0 8px 22px rgba(78,57,137,.08)}.review-help-button:hover{background:#fff;transform:translateY(-1px)}.review-tour[hidden]{display:none}.review-tour{position:fixed;z-index:3000;inset:0}.review-tour-shade{position:absolute;inset:0;background:transparent}.review-tour-focus{position:fixed;z-index:1;border:3px solid #fff;border-radius:17px;box-shadow:0 0 0 9999px rgba(22,18,31,.76),0 0 0 7px rgba(124,79,229,.4),0 16px 42px rgba(0,0,0,.3);pointer-events:none;transition:all .24s ease}.review-tour-card{position:fixed;z-index:2;box-sizing:border-box;padding:20px;border:1px solid rgba(255,255,255,.62);border-radius:21px;background:#fff;box-shadow:0 24px 70px rgba(14,9,28,.36);visibility:hidden;opacity:0;transition:opacity .16s ease}.review-tour-card.is-positioned{visibility:visible;opacity:1}.review-tour-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#7250cd;font-size:.75rem;font-weight:900}.review-tour-skip{padding:5px 9px;border:0;color:#756d81;background:transparent;font:inherit;font-size:.75rem;font-weight:800;cursor:pointer}.review-tour-card h2{margin:13px 0 7px;color:#292238;font-size:1.18rem}.review-tour-description{margin:0;color:#6e6679;line-height:1.65}.review-tour-never{display:flex;align-items:center;gap:8px;margin:16px 0 0;color:#746c80;font-size:.76rem}.review-tour-never input{width:17px;height:17px;accent-color:#7042db}.review-tour-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px}.review-tour-actions .btn{min-height:44px;padding:9px 13px}.review-tour-back:disabled{opacity:.38;cursor:default}.review-tour-open{overflow:hidden}@media(max-width:620px){.reviewer-header{align-items:center}.review-help-button span{display:none}.review-help-button{width:42px;justify-content:center;padding:8px}.review-tour-card{padding:17px}.review-tour-description{font-size:.88rem}}
.review-tour-demo{margin-top:14px;padding:10px;border-radius:15px;background:#f2eff8}.review-tour-demo[hidden]{display:none}.review-tour-paper{position:relative;height:132px;overflow:hidden;border:1px solid #ddd7e7;border-radius:10px;background:#fff;box-shadow:0 5px 14px rgba(47,38,65,.1)}.demo-line{position:absolute;left:15px;height:5px;border-radius:4px;background:#e7e4eb}.demo-line.line-1{top:22px;width:65%}.demo-line.line-2{top:39px;width:82%}.demo-line.line-3{top:56px;width:54%}.demo-ink,.demo-circle,.demo-arrow,.demo-comment{position:absolute;opacity:0;transform:scale(.8);transition:opacity .25s ease,transform .3s ease}.demo-ink{left:18px;top:73px;color:#d93648;font-size:.8rem;font-weight:900;transform:rotate(-4deg) scale(.8)}.demo-circle{right:29px;top:18px;width:44px;height:32px;border:3px solid #d93648;border-radius:50%}.demo-arrow{right:22px;top:65px;color:#2166d1;font-size:2rem;transform:rotate(-18deg) scale(.8)}.demo-comment{left:46px;bottom:10px;padding:5px 8px;border:2px solid #2166d1;border-radius:6px;color:#2166d1;background:#eef5ff;font-size:.68rem;font-weight:800}.review-tour-demo.is-draw .demo-ink,.review-tour-demo.is-draw .demo-circle,.review-tour-demo.is-draw .demo-arrow,.review-tour-demo.is-complete .demo-ink,.review-tour-demo.is-complete .demo-circle,.review-tour-demo.is-complete .demo-arrow,.review-tour-demo.is-complete .demo-comment,.review-tour-demo.is-text .demo-comment{opacity:1;transform:scale(1)}.review-tour-demo.is-draw .demo-ink,.review-tour-demo.is-complete .demo-ink{transform:rotate(-4deg) scale(1)}.review-tour-demo.is-draw .demo-arrow,.review-tour-demo.is-complete .demo-arrow{transform:rotate(-18deg) scale(1)}.review-tour-demo>small{display:block;margin-top:6px;color:#8b8396;text-align:center;font-size:.63rem}
.ipad-text-toolbar{display:flex;align-items:end;gap:10px;padding:10px 14px;background:#f8f5ff;border-bottom:1px solid #ded5ef}.ipad-text-toolbar label{display:grid;gap:5px;flex:1;min-width:220px;color:#393246;font-size:.78rem;font-weight:800}.ipad-text-toolbar input{width:100%;min-height:44px;padding:9px 13px;border:1px solid #d8ccef;border-radius:12px;background:#fff;color:#262033;font:inherit}.ipad-text-toolbar small{align-self:center;color:#756d82;font-size:.72rem}.ipad-place-text{min-height:44px;white-space:nowrap}.ipad-pdf-ink.is-placing-text{cursor:text;box-shadow:inset 0 0 0 3px rgba(111,57,219,.42)}@media(max-width:720px){.ipad-text-toolbar{align-items:stretch;flex-wrap:wrap}.ipad-text-toolbar label{flex-basis:100%}.ipad-text-toolbar small{flex:1}.ipad-place-text{order:3;width:100%}}
.ipad-canvas-stack>.canvas-container{position:absolute!important;inset:0;width:100%!important;height:100%!important}.ipad-canvas-stack>.canvas-container canvas{width:100%!important;height:100%!important}.ipad-editor-tools [data-annotation-tool].is-active{color:#38245e;background:#fff}.ipad-editor-tools .ipad-add-circle,.ipad-editor-tools .ipad-add-arrow{font-size:.83rem}
.ipad-continuous-pages{display:grid;justify-items:center;gap:22px}.ipad-continuous-page{position:relative}.ipad-continuous-page .ipad-canvas-stack{display:block}.ipad-page-badge{position:absolute;z-index:5;left:10px;top:10px;padding:5px 9px;border-radius:9px;color:#fff;background:rgba(42,36,55,.72);font-size:.72rem;font-weight:800;pointer-events:none}.ipad-continuous-page+.ipad-continuous-page{margin-top:4px}
.review-submitted-summary{display:grid;gap:16px}.review-thankyou-card{display:flex;align-items:center;gap:18px;background:linear-gradient(145deg,#f1fff5,#f4f0ff);border-color:#cfead8}.review-thankyou-icon{flex:0 0 58px;width:58px;height:58px;display:grid;place-items:center;border-radius:19px;color:#fff;background:linear-gradient(145deg,#35b76b,#238c50);font-size:1.8rem;font-weight:900;box-shadow:0 10px 24px rgba(38,151,85,.22)}.review-thankyou-card h2{margin:3px 0 5px}.review-thankyou-card p{margin:0;color:#746d80}.review-submitted-decision{margin:14px 0;padding:18px;border-radius:17px;color:#fff;background:linear-gradient(135deg,#7240df,#4f74da);text-align:center;font-size:1.15rem;font-weight:900}.review-submitted-comment{padding:16px;border:1px solid #ddd3ee;border-radius:16px;background:#fbfaff}.review-submitted-comment span{color:#81788e;font-size:.76rem}.review-submitted-comment p{margin:7px 0 0;line-height:1.7}.review-submitted-files{display:grid;gap:8px;margin-top:16px}.review-submitted-files h3{margin:0 0 3px}.review-submitted-files a{padding:12px 14px;border:1px solid #d9cef0;border-radius:13px;color:#6437c9;background:#f8f5ff;font-weight:800}.review-edit-again{margin-top:20px}.review-submitted-summary[style*="display:none"],.review-submitted-summary[style*="display: none"]{display:none!important}@media(max-width:620px){.review-thankyou-card{align-items:flex-start}.review-thankyou-icon{width:48px;height:48px;flex-basis:48px;border-radius:15px}}
.review-submitted-decision.is-passed{background:linear-gradient(135deg,#32ae68,#21894e)}.review-submitted-decision.is-conditional{background:linear-gradient(135deg,#f5a126,#de7d0d)}.review-submitted-decision.is-failed{background:linear-gradient(135deg,#e55b64,#c93445)}
.admin-review-result-card{overflow:hidden}.admin-review-result-card .review-assignment-heading{padding-bottom:18px;border-bottom:1px solid #ece6f3}.admin-review-submitted{display:grid;gap:16px;padding-top:18px}.admin-review-decision{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-radius:17px;color:#fff;background:linear-gradient(135deg,#7240df,#4f74da)}.admin-review-decision span{font-size:.78rem;opacity:.88}.admin-review-decision strong{font-size:1.12rem}.admin-review-decision.is-passed{background:linear-gradient(135deg,#32ae68,#21894e)}.admin-review-decision.is-conditional{background:linear-gradient(135deg,#f5a126,#de7d0d)}.admin-review-decision.is-failed{background:linear-gradient(135deg,#e55b64,#c93445)}.admin-review-comment{padding:17px 18px;border:1px solid #e1d8ef;border-radius:16px;background:#fbfaff}.admin-review-comment>span{display:block;margin-bottom:8px;color:#81778f;font-size:.74rem;font-weight:800}.admin-review-comment>div{color:#302a3a;line-height:1.7}.admin-review-files{display:grid;gap:9px}.admin-review-files h3{margin:0 0 2px}.admin-review-files a{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid #ded2f2;border-radius:14px;color:#5730b9;background:#f7f3ff}.admin-review-files a>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:#fff;background:#df4052;font-size:.68rem;font-weight:900}.admin-review-files a strong{min-width:0;overflow-wrap:anywhere}.admin-review-files a small{color:#786e86}.admin-review-return-note{display:grid;gap:6px}.admin-review-return-note>span{font-weight:900}.admin-review-return-note>small{color:#81798d}.admin-review-return-note textarea{width:100%;min-height:118px;padding:14px 16px;border:1.5px solid #d9cfeb;border-radius:15px;background:#fff;color:#2c2635;font:inherit;line-height:1.6;resize:vertical;box-sizing:border-box;outline:none}.admin-review-return-note textarea:focus{border-color:#7542dd;box-shadow:0 0 0 4px rgba(117,66,221,.1)}.review-admin-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding-top:17px;border-top:1px solid #ece6f3}.review-admin-actions .btn{min-width:220px}@media(max-width:680px){.admin-review-result-card .review-assignment-heading{align-items:flex-start;flex-direction:column}.admin-review-decision{align-items:flex-start;flex-direction:column;gap:5px}.admin-review-files a{grid-template-columns:40px minmax(0,1fr)}.admin-review-files a small{grid-column:2}.review-admin-actions{display:grid}.review-admin-actions .btn{width:100%;min-width:0}}
.admin-review-file-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid #ded2f2;border-radius:14px;background:#f7f3ff}.admin-review-file-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:#fff;background:#df4052;font-size:.68rem;font-weight:900}.admin-review-file-row>strong{min-width:0;overflow-wrap:anywhere;color:#493a61}.admin-review-file-row>div{display:flex;gap:8px}.admin-review-file-row .btn{min-height:40px;padding:8px 13px;font-size:.78rem}.admin-inline-pdf-viewer{overflow:hidden;border:1px solid #d9cfeb;border-radius:18px;background:#302a3b;box-shadow:0 14px 34px rgba(43,33,60,.18)}.admin-inline-pdf-viewer[hidden]{display:none}.admin-inline-pdf-viewer>div{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;color:#fff;background:#352e43}.admin-inline-pdf-close{width:38px;height:38px;border:0;border-radius:11px;color:#fff;background:rgba(255,255,255,.12);font-size:1.35rem}.admin-inline-pdf-viewer iframe{display:block;width:100%;height:min(72vh,820px);border:0;background:#fff}@media(max-width:680px){.admin-review-file-row{grid-template-columns:40px minmax(0,1fr)}.admin-review-file-row>div{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.admin-review-file-row .btn{justify-content:center}.admin-inline-pdf-viewer iframe{height:65vh}}
.admin-review-file-row .review-document-buttons{display:flex;gap:8px;flex-wrap:nowrap}.admin-review-file-row .review-document-buttons .btn{display:inline-flex;align-items:center;justify-content:center;min-width:118px;min-height:44px;padding:9px 14px;border-radius:13px;white-space:nowrap;line-height:1}.admin-review-file-row .admin-inline-pdf{color:#fff;background:linear-gradient(145deg,#7743e4,#6031cf);box-shadow:0 8px 18px rgba(102,52,211,.22)}@media(max-width:680px){.admin-review-file-row .review-document-buttons{display:grid;grid-template-columns:1fr 1fr}.admin-review-file-row .review-document-buttons .btn{width:100%;min-width:0}}
.admin-submission-file-box{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:15px;border:1px solid #ddd3ef;border-radius:17px;background:linear-gradient(145deg,#f8f5ff,#eef6ff)}.admin-submission-file-box[hidden]{display:none}.admin-submission-file-box>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}.admin-submission-file-icon{flex:0 0 43px;width:43px;height:43px;display:grid;place-items:center;border-radius:12px;color:#fff;background:#de3f50;font-size:.66rem;font-weight:900}.admin-submission-file-box small,.admin-submission-file-box strong{display:block}.admin-submission-file-box small{color:#887e94;font-size:.68rem}.admin-submission-file-name{margin-top:3px;overflow-wrap:anywhere;color:#372d47}.admin-submission-file-box .review-document-buttons{display:flex;gap:8px;flex-wrap:nowrap}.admin-submission-file-box .btn{min-height:43px;padding:9px 13px;white-space:nowrap}.admin-submission-file-viewer{margin-top:14px;overflow:hidden;border-radius:17px;background:#302a3b}.admin-submission-file-viewer[hidden]{display:none}.admin-submission-file-viewer>header{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;color:#fff;background:#393146}.admin-submission-file-close{width:38px;height:38px;border:0;border-radius:11px;color:#fff;background:rgba(255,255,255,.14);font-size:1.3rem}.admin-submission-file-viewer iframe{display:block;width:100%;height:min(68vh,720px);border:0;background:#fff}@media(max-width:680px){.admin-submission-file-box{align-items:stretch;flex-direction:column}.admin-submission-file-box .review-document-buttons{display:grid;grid-template-columns:1fr 1fr}.admin-submission-file-viewer iframe{height:60vh}}
.admin-review-ticket-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.admin-ticket-result-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 14px;border:1px solid #7046df;border-radius:999px;color:#6036ca;background:#fff;font-weight:700;text-decoration:none;transition:.2s ease}
.admin-ticket-result-link:hover{color:#fff;background:#7046df;box-shadow:0 8px 20px rgba(101,64,207,.2)}
.admin-review-ticket-actions{margin-top:24px;padding:22px;border:1px solid #e5dcf5;border-radius:20px;background:linear-gradient(145deg,#fff,#faf8ff)}
.admin-review-ticket-actions h3{margin:0 0 16px;color:#282434}
.admin-review-new-due{display:block;margin-top:14px}
.admin-review-new-due>span:first-child{display:block;margin-bottom:8px;font-weight:700}
.btn-warning{background:#f59a1b!important;border-color:#f59a1b!important;color:#fff!important}
@media(max-width:640px){.admin-review-ticket-actions{padding:16px}.admin-review-ticket-row{align-items:flex-start}.admin-ticket-result-link{min-height:36px}.review-admin-actions .btn{width:100%}}
.dms-control-card{border-top:4px solid #7143dc;background:linear-gradient(145deg,#fff,#f7f4ff)}.dms-action-area{display:grid;gap:16px}.dms-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dms-action-grid details{border:1px solid #e1d7f2;border-radius:18px;background:#fff;overflow:hidden}.dms-action-grid summary{padding:16px 18px;cursor:pointer;color:#6138c2;font-weight:900}.dms-action-body{display:grid;gap:12px;padding:0 18px 18px}.dms-final-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:16px;border-top:1px solid #e9e2f2}.dms-final-actions textarea,.dms-recall-area textarea{width:100%;min-height:92px;padding:13px 15px;border:1.5px solid #d9cfeb;border-radius:14px;box-sizing:border-box;font:inherit}.dms-recall-area{display:grid;gap:12px;padding:18px;border-radius:18px;background:#fff7ed}.dms-timeline{display:grid;gap:10px;margin-top:18px}.dms-timeline-item{padding:15px 17px;border-left:4px solid #7448da;border-radius:14px;background:#f8f5ff}.dms-timeline-item p{margin:5px 0;color:#756d82}.dms-timeline-item small{color:#948b9f}.revision-action-link{display:inline-flex;margin:12px 0 4px;text-decoration:none}.btn-success{color:#fff!important;background:#28985a!important}.btn-danger{color:#fff!important;background:#d44754!important}.applicant-revision-page .reviewer-card{max-width:820px;margin-left:auto;margin-right:auto}.applicant-revision-page .review-file-list{margin:16px 0}.applicant-revision-page .review-field input[type=file]{width:100%;box-sizing:border-box}@media(max-width:700px){.dms-action-grid{grid-template-columns:1fr}.dms-final-actions{display:grid}.dms-final-actions .btn{width:100%}}
.admin-reassign-panel{margin:16px 0}.admin-reassign-panel details{border:1px solid #eadff8;border-radius:18px;background:#fbf9ff;overflow:hidden}.admin-reassign-panel summary{cursor:pointer;list-style:none;padding:16px 20px;color:#6236ca;font-weight:800}.admin-reassign-panel summary::-webkit-details-marker{display:none}.admin-reassign-panel summary:after{content:'＋';float:right}.admin-reassign-panel details[open] summary:after{content:'−'}.admin-reassign-body{padding:0 20px 20px;border-top:1px solid #eee7f8}.admin-reassign-body .admin-help{margin:16px 0}
.admin-review-popup{position:fixed;z-index:1400;inset:0;display:grid;place-items:center;padding:22px}.admin-review-popup[hidden]{display:none}.admin-review-popup-backdrop{position:absolute;inset:0;border:0;background:rgba(33,26,52,.58);backdrop-filter:blur(5px)}.admin-review-popup-dialog{position:relative;width:min(1120px,calc(100vw - 40px));height:min(880px,calc(100dvh - 40px));display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:28px;background:#f6f4fc;box-shadow:0 32px 90px rgba(26,18,52,.35)}.admin-review-popup-top{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;color:#fff;background:linear-gradient(135deg,#7041d9,#4e76db)}.admin-review-popup-top span,.admin-review-popup-top strong{display:block}.admin-review-popup-top span{font-size:.7rem;opacity:.78;text-transform:uppercase}.admin-review-popup-top strong{margin-top:2px;font-size:1.08rem}.admin-review-popup-close{width:42px;height:42px;border:0;border-radius:13px;color:#fff;background:rgba(255,255,255,.16);font-size:1.6rem;cursor:pointer}.admin-review-popup iframe{width:100%;height:100%;border:0;background:#f6f4fc}.modal-open{overflow:hidden}.review-popup-page .site-header,.review-popup-page .cookie-consent,.review-popup-page .admin-header{display:none!important}.review-popup-page .review-admin-shell{width:auto;max-width:none;margin:0;padding:18px}.review-popup-page .review-summary{margin-top:0}.dms-table-wrap{overflow:auto;border:1px solid #e2daee;border-radius:16px;background:#fff}.dms-transaction-table{width:100%;min-width:840px;border-collapse:collapse;text-align:left}.dms-transaction-table th{padding:12px 14px;color:#746b82;background:#f4f1f9;font-size:.72rem;white-space:nowrap}.dms-transaction-table td{padding:13px 14px;border-top:1px solid #ece6f3;color:#3d3548;font-size:.78rem;vertical-align:top}.dms-transaction-table td:first-child{color:#6139c1}.dms-transaction-table .status-pill{display:inline-flex;white-space:nowrap}@media(max-width:700px){.admin-review-popup{padding:0}.admin-review-popup-dialog{width:100vw;height:100dvh;border-radius:0}.admin-review-popup-top{padding:12px 15px}.review-popup-page .review-admin-shell{padding:12px}.review-popup-page .review-summary{border-radius:18px}}
.dms-action-body label,.dms-final-actions>label,.dms-recall-area label{display:grid;gap:7px;min-width:0}.dms-action-body label>span:first-child,.dms-final-actions label>span:first-child,.dms-recall-area label>span:first-child{color:#42394f;font-size:.8rem;font-weight:800}.dms-action-body select,.dms-action-body input[type=text],.dms-action-body textarea,.dms-final-actions textarea,.dms-recall-area textarea{display:block;width:100%;min-width:0;box-sizing:border-box;border:1.5px solid #ddd4ec;border-radius:14px;color:#30283d;background:#fff;font:inherit;outline:none}.dms-action-body select,.dms-action-body input[type=text]{min-height:50px;padding:0 14px}.dms-action-body textarea,.dms-final-actions textarea,.dms-recall-area textarea{min-height:108px;padding:13px 14px;line-height:1.55;resize:vertical}.dms-action-body select:focus,.dms-action-body input[type=text]:focus,.dms-action-body textarea:focus,.dms-final-actions textarea:focus,.dms-recall-area textarea:focus{border-color:#7446dc;box-shadow:0 0 0 4px rgba(116,70,220,.1)}.dms-action-body .datetime-picker-wrap{display:grid;grid-template-columns:minmax(0,1fr) 50px;gap:9px}.dms-action-body .calendar-picker-button{position:static;width:50px;height:50px;border:0;border-radius:14px;color:#6538c9;background:#eee7ff;font-size:1.05rem;cursor:pointer}.dms-action-body>.btn{width:100%;min-height:52px;margin-top:2px}.dms-final-actions>label{flex:1 1 460px}.dms-final-actions>div{display:flex;align-items:flex-end;gap:9px}.dms-final-actions>div .btn{min-height:50px}.dms-recall-area .btn{justify-self:start}@media(max-width:700px){.dms-action-body{padding:0 14px 16px}.dms-action-body select,.dms-action-body input[type=text]{min-height:48px}.dms-final-actions>div{display:grid}.dms-recall-area .btn{width:100%}}
.dms-file-preview-modal{position:fixed;z-index:2100;inset:0;display:grid;place-items:center;padding:20px}.dms-file-preview-modal[hidden]{display:none}.dms-file-preview-backdrop{position:absolute;inset:0;border:0;background:rgba(22,17,34,.62);backdrop-filter:blur(4px)}.dms-file-preview-dialog{position:relative;width:min(980px,calc(100vw - 36px));height:min(850px,calc(100dvh - 36px));display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 34px 100px rgba(19,12,35,.48)}.dms-file-preview-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #e8e1f1;background:#fff}.dms-file-preview-dialog h3{margin:3px 0 0;font-size:1.05rem}.dms-file-preview-close{width:42px;height:42px;border:0;border-radius:13px;color:#71687d;background:#f2eef7;font-size:1.45rem;cursor:pointer}.dms-file-preview-dialog iframe{width:100%;height:100%;border:0;background:#eee}@media(max-width:680px){.dms-file-preview-modal{padding:0}.dms-file-preview-dialog{width:100vw;height:100dvh;border-radius:0}.dms-file-preview-dialog>header{padding:12px 14px}}
.dms-action-open{min-height:82px;padding:14px 17px;border:1.5px solid #ded4ef;border-radius:18px;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;text-align:left;color:#5731b7;background:#fff;cursor:pointer;transition:.18s ease}.dms-action-open:hover{border-color:#7547db;background:#faf8ff;box-shadow:0 10px 26px rgba(88,52,174,.12);transform:translateY(-1px)}.dms-action-open>span{grid-row:1/3;width:42px;height:42px;display:grid;place-items:center;align-self:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,#7448df,#4f78dc);font-size:1.05rem}.dms-action-open strong{align-self:end;font-size:.9rem}.dms-action-open small{align-self:start;margin-top:2px;color:#8a8295;font-size:.69rem}.dms-action-modal{position:fixed;z-index:1800;inset:0;display:grid;place-items:center;padding:18px}.dms-action-modal[hidden]{display:none}.dms-action-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(35,27,53,.5);backdrop-filter:blur(3px)}.dms-action-modal-dialog{position:relative;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border-radius:24px;background:#fff;box-shadow:0 26px 75px rgba(27,19,49,.32)}.dms-action-modal-dialog>header{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #ebe5f3;background:#fff}.dms-action-modal-dialog h3{margin:3px 0 0;font-size:1.16rem}.dms-action-modal-close{width:40px;height:40px;border:0;border-radius:12px;color:#71697e;background:#f3f0f7;font-size:1.45rem;cursor:pointer}.dms-action-modal .dms-action-body{padding:19px 20px 22px}.dms-dialog-open{overflow:hidden}@media(max-width:600px){.dms-action-open{min-height:74px}.dms-action-modal{padding:0}.dms-action-modal-dialog{width:100vw;max-height:100dvh;border-radius:0}.dms-action-modal-dialog>header{padding:15px 16px}.dms-action-modal .dms-action-body{padding:17px 16px 20px}}
.dms-action-open:disabled{border-style:dashed;border-color:#d8d2df;color:#8a8295;background:#f5f3f7;box-shadow:none;cursor:not-allowed;transform:none;opacity:.82}.dms-action-open:disabled:hover{border-color:#d8d2df;background:#f5f3f7;box-shadow:none;transform:none}.dms-action-open:disabled>span{background:#aaa3b3}.dms-action-open:disabled small::after{content:" · ใช้ได้เมื่อกรรมการส่งไฟล์กลับมาแล้ว";color:#b15a66}
.admin-project-metric-hidden{display:none!important}
.applicant-revision-shell{padding-bottom:56px}.applicant-revision-page .reviewer-card{max-width:820px;margin-left:auto;margin-right:auto}.revision-work-card{border-left:5px solid #6f48db}.revision-work-card h2{margin:14px 0}.revision-due{display:inline-flex;gap:7px;padding:9px 13px;border-radius:12px;background:#f4f0ff;color:#756c85}.revision-due strong{color:#5530bd}.revision-request-card,.revision-return-card{display:grid;gap:18px}.revision-request-card .review-submitted-comment{margin:0;padding:17px 19px;border:1px solid #e2d8f4;border-radius:16px;background:#faf8ff}.revision-request-card .review-submitted-comment p{margin:0;line-height:1.7}.revision-incoming-files{margin:0!important}.revision-file-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid #ded3f2;border-radius:16px;background:linear-gradient(135deg,#faf8ff,#eff7ff)}.revision-file-row>div{display:flex;align-items:center;gap:10px;min-width:0}.revision-file-row strong{overflow-wrap:anywhere}.revision-pdf-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#df3b4b;color:#fff;font-size:11px;font-weight:900;flex:0 0 auto}.revision-file-row .btn{white-space:nowrap}.revision-pdf-viewer{overflow:hidden;border-radius:18px;background:#302a40}.revision-pdf-viewer header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:#fff}.revision-close-pdf{width:34px;height:34px;border:0;border-radius:10px;background:#514961;color:#fff;font-size:22px;cursor:pointer}.revision-pdf-viewer iframe{display:block;width:100%;height:min(72vh,760px);border:0;background:#fff}.revision-form-grid{display:grid;gap:16px}.revision-field{display:grid;gap:8px;font-weight:800}.revision-field input[type=file]{width:100%;padding:8px;border:1.5px dashed #cfc1eb;border-radius:15px;background:#faf8ff;box-sizing:border-box;font:inherit;color:#6f667b}.revision-field input[type=file]::file-selector-button{margin-right:12px;padding:11px 15px;border:0;border-radius:11px;background:#ede6ff;color:#6237ca;font:inherit;font-weight:900;cursor:pointer}.revision-field textarea{width:100%;min-height:130px;padding:14px 16px;border:1.5px solid #dbd1ec;border-radius:15px;box-sizing:border-box;resize:vertical;font:inherit;line-height:1.6}.revision-field textarea:focus,.revision-field input[type=file]:focus{outline:3px solid rgba(111,67,220,.16);border-color:#7445dd}.revision-submit-row{display:flex;justify-content:flex-end;padding-top:4px}.revision-submit-row .btn{min-width:220px}.applicant-revision-page .success-message,.applicant-revision-page .error-message{display:block;max-width:820px;margin:16px auto;padding:16px 18px;border-radius:16px}@media(max-width:700px){.revision-file-row,.revision-file-row>div:last-child{align-items:stretch;flex-direction:column}.revision-file-row .btn{width:100%;box-sizing:border-box;text-align:center}.revision-submit-row .btn{width:100%}.revision-pdf-viewer iframe{height:62vh}}
.dms-latest-suggestion{margin:8px 0}.dms-use-reviewer-suggestion{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #d9cdf1;border-radius:12px;background:#f6f1ff;color:#6339c8;font:inherit;font-size:.88rem;font-weight:900;cursor:pointer}.dms-use-reviewer-suggestion:hover{border-color:#7447db;background:#eee5ff}.dms-use-reviewer-suggestion span{color:#f59a16}
.dms-transaction-file-list{display:grid;gap:10px;margin-top:10px}.dms-transaction-file-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 15px;border:1px solid #dcd1ef;border-radius:17px;background:linear-gradient(135deg,#faf8ff,#eef7ff)}.dms-transaction-file-meta,.dms-transaction-file-actions{display:flex;align-items:center;gap:10px;min-width:0}.dms-transaction-file-meta>span{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:12px;background:#df3e50;color:#fff;font-size:.7rem;font-weight:900}.dms-transaction-file-meta small,.dms-transaction-file-meta strong{display:block}.dms-transaction-file-meta small{color:#8b8296;font-size:.7rem}.dms-transaction-file-meta strong{margin-top:2px;color:#3b3149;overflow-wrap:anywhere}.dms-transaction-file-actions{flex:0 0 auto}.dms-transaction-file-actions .btn{min-height:43px;padding:9px 14px;white-space:nowrap}.dms-transaction-preview-button{border:0;background:linear-gradient(145deg,#7543e0,#6031cf)!important;box-shadow:0 8px 19px rgba(97,49,207,.2)}@media(max-width:650px){.dms-transaction-file-card{align-items:stretch;flex-direction:column}.dms-transaction-file-actions{display:grid;grid-template-columns:1fr 1fr}.dms-transaction-file-actions .btn{width:100%;box-sizing:border-box;text-align:center}}
.dms-applicant-outgoing-files {
  display: grid;
  gap: 9px;
  padding: 14px;
  border: 1px solid #e0d7ef;
  border-radius: 16px;
  background: #faf8ff;
}

.dms-outgoing-files-title {
  color: #42394f;
  font-size: .8rem;
  font-weight: 900;
}

.dms-outgoing-file-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px solid #dcd1ef;
  border-radius: 14px;
  background: linear-gradient(135deg, #fff, #eef7ff);
}

.dms-outgoing-file-card > div {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.dms-outgoing-file-card small,
.dms-outgoing-file-card strong {
  display: block;
}

.dms-outgoing-file-card small {
  color: #8b8296;
  font-size: .67rem;
}

.dms-outgoing-file-card strong {
  margin-top: 2px;
  overflow-wrap: anywhere;
}

.dms-outgoing-pdf-icon {
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: #df3e50;
  color: #fff;
  font-size: .65rem;
  font-weight: 900;
}

.dms-outgoing-file-preview {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 8px 13px !important;
  white-space: nowrap;
}

.dms-outgoing-inline-viewer {
  overflow: hidden;
  border-radius: 16px;
  background: #302a3d;
}

.dms-outgoing-inline-viewer[hidden] {
  display: none;
}

.dms-outgoing-inline-viewer header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  color: #fff;
}

.dms-outgoing-inline-close {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, .14);
  color: #fff;
  font-size: 1.35rem;
  cursor: pointer;
}

.dms-outgoing-inline-viewer iframe {
  display: block;
  width: 100%;
  height: min(65vh, 690px);
  border: 0;
  background: #fff;
}

.dms-action-modal:has(.dms-outgoing-inline-viewer:not([hidden])) .dms-action-modal-dialog {
  width: min(920px, calc(100vw - 32px));
}

@media (max-width: 600px) {
  .dms-outgoing-file-card {
    align-items: stretch;
    flex-direction: column;
  }

  .dms-outgoing-file-preview {
    width: 100%;
  }

  .dms-outgoing-inline-viewer iframe {
    height: 58vh;
  }
}

.email-process-overlay {
  position: fixed;
  z-index: 10050;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(34, 27, 57, .58);
  backdrop-filter: blur(5px);
}

.email-process-overlay[hidden] {
  display: none;
}

.email-process-card {
  display: grid;
  justify-items: center;
  gap: 10px;
  width: min(360px, 100%);
  padding: 28px 24px;
  border-radius: 24px;
  background: #fff;
  color: #302746;
  text-align: center;
  box-shadow: 0 24px 70px rgba(31, 20, 58, .28);
}

.email-process-card strong {
  font-size: 1.2rem;
}

.email-process-card span:last-child {
  color: #827990;
  font-size: .9rem;
}

.email-process-spinner {
  width: 48px;
  height: 48px;
  border: 5px solid #ebe4ff;
  border-top-color: #6938df;
  border-radius: 50%;
  animation: email-process-spin .75s linear infinite;
}

.is-email-processing {
  pointer-events: none;
  cursor: wait !important;
  opacity: .72;
}

body.email-process-active {
  overflow: hidden;
  cursor: wait;
}

@keyframes email-process-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .email-process-spinner {
    animation-duration: 1.5s;
  }
}

.applicant-revision-page .reviewer-header,
.applicant-revision-page .reviewer-card {
  box-sizing: border-box;
  width: 100%;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}

.dms-action-toolbar {
  margin-top: 18px;
  padding-bottom: 4px;
}

.dms-action-toolbar .dms-action-grid-four {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100%;
  min-width: 0;
}

.dms-action-toolbar .dms-action-grid-four > button {
  box-sizing: border-box;
  width: 100%;
  min-height: 108px;
}

@media (max-width: 700px) {
  .dms-action-toolbar {
    overflow-x: auto;
  }

  .dms-action-toolbar .dms-action-grid-four {
    grid-template-columns: repeat(4, minmax(170px, 1fr)) !important;
    min-width: 722px;
  }
}

.dms-decision-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  font-weight: 900;
  white-space: nowrap;
}

.dms-decision-pill > span {
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  color: #fff;
  font-size: .72rem;
  line-height: 1;
}

.dms-decision-pill.is-passed {
  color: #187844;
  background: #e6f7eb;
}

.dms-decision-pill.is-passed > span {
  background: #27a766;
}

.dms-decision-pill.is-conditional {
  color: #a55b00;
  background: #fff0d5;
}

.dms-decision-pill.is-conditional > span {
  background: #ef971f;
}

.dms-decision-pill.is-failed {
  color: #b82f3d;
  background: #ffe8eb;
}

.dms-decision-pill.is-failed > span {
  background: #dc4b57;
}

.dms-decision-pill.is-neutral {
  color: #6f687a;
  background: #f0edf3;
}

.dms-decision-pill.is-neutral > span {
  background: #8a8293;
}

@media (max-width: 700px) {
  .applicant-revision-page .reviewer-header,
  .applicant-revision-page .reviewer-card {
    width: calc(100% - 24px);
    margin-left: 12px;
    margin-right: 12px;
  }

  .applicant-revision-page .reviewer-header {
    margin-top: 12px;
    border-radius: 21px;
  }
}
.dms-transaction-detail-modal .dms-action-modal-dialog{width:min(920px,calc(100vw - 32px))}.dms-transaction-inline-viewer{overflow:hidden;margin-top:14px;border-radius:17px;background:#302a3d}.dms-transaction-inline-viewer[hidden]{display:none}.dms-transaction-inline-viewer header{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;color:#fff;background:#3a3149}.dms-transaction-inline-close{width:38px;height:38px;border:0;border-radius:11px;background:rgba(255,255,255,.14);color:#fff;font-size:1.35rem;cursor:pointer}.dms-transaction-inline-viewer iframe{display:block;width:100%;height:min(68vh,720px);border:0;background:#fff}@media(max-width:600px){.dms-transaction-detail-modal .dms-action-modal-dialog{width:100vw}.dms-transaction-inline-viewer iframe{height:62vh}}
/* Member profile */
.profile-shell {
    padding-bottom: 132px;
}

.profile-header {
    align-items: flex-end;
}

.profile-kicker {
    display: block;
    margin-bottom: 8px;
    color: #6840d8;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.profile-card {
    margin-top: 18px;
    padding: 28px;
    border: 1px solid #e3daf7;
    border-radius: 28px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 18px 42px rgba(61, 45, 105, .08);
}

.profile-card-heading {
    display: flex;
    align-items: center;
    gap: 14px;
}

.profile-card-heading h2,
.profile-card-heading p {
    margin: 0;
}

.profile-card-heading p {
    margin-top: 3px;
    color: #878096;
}

.profile-section-icon {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(135deg, #7340e3, #4d7be1);
    font-size: 1.25rem;
    font-weight: 800;
}

.security-icon {
    background: linear-gradient(135deg, #327fe3, #6d43dc);
}

.verified-account-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-left: auto;
    padding: 9px 13px;
    border-radius: 999px;
    color: #147d45;
    background: #e9f8ef;
    font-size: .84rem;
    font-weight: 800;
}

.profile-email-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 24px 0;
    padding: 17px 19px;
    border: 1px solid #ded6f1;
    border-radius: 18px;
    background: linear-gradient(135deg, #f8f5ff, #f2f8ff);
}

.profile-email-panel small,
.profile-email-panel strong {
    display: block;
}

.profile-email-panel small {
    margin-bottom: 3px;
    color: #8c839e;
}

.profile-email-panel > span {
    color: #8a8298;
    font-size: .82rem;
}

.profile-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 18px;
}

.profile-name-grid {
    grid-template-columns: minmax(130px, .45fr) repeat(2, minmax(0, 1fr));
}

.profile-form-grid .field {
    margin: 0;
}

.profile-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid #ece6f5;
}

.profile-form-actions .btn {
    min-width: 220px;
}

.profile-security-card {
    padding-top: 22px;
    padding-bottom: 22px;
}

.profile-password-button {
    margin-left: auto;
}

.profile-logout-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    padding: 13px 18px;
    border-radius: 15px;
    color: #bd3d54;
    background: #fff0f3;
    font-weight: 800;
    text-decoration: none;
}

.profile-message {
    display: block;
    margin-top: 18px;
    padding: 14px 17px;
    border-radius: 15px;
}

.profile-message.success-message,
.profile-password-message.success-message {
    color: #147d45;
    background: #eaf8ef;
}

.profile-message.error-message,
.profile-password-message.error-message {
    color: #b52f49;
    background: #fff0f3;
}

.profile-modal[hidden] {
    display: none;
}

.profile-modal {
    position: fixed;
    z-index: 1400;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 18px;
}

.profile-modal-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(36, 29, 55, .58);
    backdrop-filter: blur(4px);
}

.profile-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
    padding: 28px;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(31, 24, 52, .28);
}

.profile-modal-dialog > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid #ece6f5;
}

.profile-modal-dialog header span {
    color: #6d42db;
    font-size: .78rem;
    font-weight: 800;
}

.profile-modal-dialog h2 {
    margin: 4px 0 0;
}

.profile-modal-close {
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 15px;
    color: #756d82;
    background: #f4f1f8;
    font-size: 1.8rem;
    cursor: pointer;
}

.profile-modal-dialog .field {
    margin-top: 16px;
}

.profile-field-hint {
    display: block;
    margin-top: 6px;
    color: #8e8799;
}

.profile-password-message {
    display: block;
    padding: 12px 14px;
    border-radius: 13px;
}

.profile-change-password-submit {
    width: 100%;
    margin-top: 22px;
}

.field-invalid {
    border-color: #da475c !important;
    box-shadow: 0 0 0 3px rgba(218, 71, 92, .12) !important;
}

@media (max-width: 720px) {
    .profile-card {
        padding: 20px;
        border-radius: 24px;
    }

    .profile-card-heading {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .verified-account-badge,
    .profile-password-button {
        width: 100%;
        margin-left: 0;
        justify-content: center;
    }

    .profile-email-panel {
        align-items: flex-start;
        flex-direction: column;
    }

    .profile-form-grid,
    .profile-name-grid {
        grid-template-columns: 1fr;
    }

    .profile-form-actions .btn {
        width: 100%;
        min-width: 0;
    }

    .profile-logout-link {
        width: 100%;
        justify-content: center;
    }

    .profile-modal-dialog {
        padding: 22px 18px;
        border-radius: 24px;
    }
}

/* Applicant submission document */
.applicant-document-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px;
    border: 1px solid #ddd3f5;
    border-radius: 20px;
    background: linear-gradient(135deg, #faf7ff, #eef7ff);
}

.applicant-document-summary {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 14px;
}

.applicant-document-summary small,
.applicant-document-summary strong {
    display: block;
}

.applicant-document-summary small {
    color: #8c849c;
}

.applicant-document-summary strong {
    overflow-wrap: anywhere;
}

.applicant-document-icon {
    display: grid;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: #df3e53;
    font-size: .82rem;
    font-weight: 800;
}

.applicant-document-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 10px;
}

.applicant-document-viewer {
    overflow: hidden;
    margin-top: 16px;
    border-radius: 22px;
    background: #28252f;
}

.applicant-document-viewer[hidden] {
    display: none;
}

.applicant-document-viewer > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    color: #fff;
    background: #352d46;
}

.applicant-document-viewer header button {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 11px;
    color: #fff;
    background: rgba(255, 255, 255, .14);
    font-size: 1.45rem;
    cursor: pointer;
}

.applicant-document-viewer iframe {
    display: block;
    width: 100%;
    height: min(76vh, 820px);
    border: 0;
    background: #fff;
}

@media (max-width: 640px) {
    .applicant-document-card {
        align-items: stretch;
        flex-direction: column;
    }

    .applicant-document-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .applicant-document-actions .btn {
        padding-right: 10px;
        padding-left: 10px;
        text-align: center;
    }

    .applicant-document-viewer iframe {
        height: 68vh;
    }
}

/* Event tickets */
.ticket-shell {
    max-width: 920px;
}

.ticket-page-header {
    display: block;
    padding-bottom: 26px;
}

.ticket-page-header h1 {
    max-width: none;
    margin: 5px 0 6px;
    color: #302750;
    font-size: clamp(2rem, 7vw, 2.65rem);
    line-height: 1.12;
}

.ticket-page-header p {
    max-width: 580px;
    margin: 0;
    line-height: 1.65;
}

.ticket-kicker {
    display: block;
    color: #6540cf;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.attendee-person-card {
    margin-bottom: 18px;
}

.attendee-mode-options {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 20px;
}

.attendee-mode-options label {
    min-height: 64px;
    padding: 14px 16px 14px 48px;
    border: 1px solid #ddd4f4;
    border-radius: 16px;
    display: flex;
    align-items: center;
    position: relative;
    color: #544a68;
    background: linear-gradient(145deg, #ffffff, #faf8ff);
    font-weight: 700;
    cursor: pointer;
    transition:
        border-color .18s ease,
        background .18s ease,
        box-shadow .18s ease,
        transform .18s ease;
}

.attendee-mode-options label::before {
    content: "";
    position: absolute;
    left: 17px;
    top: 50%;
    width: 20px;
    height: 20px;
    border: 2px solid #b8aecf;
    border-radius: 50%;
    background: #ffffff;
    transform: translateY(-50%);
    box-sizing: border-box;
}

.attendee-mode-options label:hover {
    border-color: #aa91ee;
    transform: translateY(-1px);
}

.attendee-mode-options input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.attendee-mode-options br {
    display: none;
}

.attendee-self-registration-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: -2px 0 16px;
    padding: 9px 11px;
    color: #655a78;
    background: #f5f2fb;
    border: 1px solid #e3dcf1;
    border-radius: 12px;
    font-size: .76rem;
}

.attendee-self-registration-notice span {
    display: inline-grid;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    place-items: center;
    color: #fff;
    background: #7650d8;
    border-radius: 50%;
    font-size: .68rem;
}

.attendee-self-registration-notice p {
    margin: 0;
    line-height: 1.55;
}

.attendee-self-registration-notice a {
    color: #6339c8;
    font-weight: 700;
}

.attendee-mode-options input:checked + label {
    border-color: #7550df;
    color: #5129c4;
    background: linear-gradient(145deg, #f7f2ff, #eef3ff);
    box-shadow: 0 10px 24px rgba(105, 67, 211, .14);
}

.attendee-mode-options input:checked + label::before {
    border: 5px solid #ffffff;
    background: #6840d8;
    box-shadow: 0 0 0 2px #6840d8;
}

.attendee-mode-options input:focus-visible + label {
    outline: 3px solid rgba(105, 64, 216, .24);
    outline-offset: 2px;
}

.attendee-person-fields input[readonly] {
    color: #665d76;
    background: #f4f2f8;
}

@media (max-width: 620px) {
    .attendee-mode-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .attendee-mode-options label {
        min-height: 58px;
        padding: 10px 9px 10px 36px;
        border-radius: 14px;
        font-size: .76rem;
        line-height: 1.3;
    }

    .attendee-mode-options label::before {
        left: 12px;
        width: 17px;
        height: 17px;
    }
}

.event-ticket-list {
    display: grid;
    gap: 20px;
    padding: 22px 0 110px;
}

.event-pass-card {
    overflow: hidden;
    border: 1px solid #d9d2f2;
    border-radius: 28px;
    background: linear-gradient(150deg, #ffffff 40%, #edf5ff);
    box-shadow: 0 18px 42px rgba(51, 48, 102, .12);
}

.event-pass-card > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 24px;
    background: linear-gradient(135deg, #6941df, #4e7ae1);
    color: #fff;
}

.event-pass-card.event-pass-presenter {
    border-color: #f0cf8e;
    background: linear-gradient(150deg, #ffffff 40%, #fff7e7);
}

.event-pass-card.event-pass-presenter > header {
    background: linear-gradient(135deg, #d88a13, #f0ad2f);
}

.event-pass-kind {
    display: inline-flex;
    margin-left: 7px;
    border-radius: 999px;
    padding: 4px 8px;
    background: rgba(255, 255, 255, .2);
    color: #fff;
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: 0;
    opacity: 1;
}

.event-pass-card header small {
    font-weight: 800;
    letter-spacing: .05em;
    opacity: .82;
}

.event-pass-card header h2 {
    margin: 5px 0 0;
    font-size: clamp(20px, 4vw, 28px);
}

.event-pass-owner-tag {
    margin-left: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: .67rem;
    font-style: normal;
    font-weight: 800;
}

.event-pass-owner-tag.is-self {
    color: #356fc7;
    background: #e5f0ff;
}

.event-pass-owner-tag.is-delegated {
    color: #9b6500;
    background: #fff0c8;
}

.event-pass-owner-tag.is-presenter {
    color: #9a6000;
    background: #ffedc5;
}

.event-pass-ready {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 7px 11px;
    background: rgba(255, 255, 255, .18);
    font-size: 12px;
    font-weight: 800;
}

.event-pass-person {
    display: grid;
    gap: 2px;
    padding: 20px 24px 0;
    text-align: center;
}

.event-pass-person span,
.event-pass-person small {
    color: #817a91;
}

.event-pass-person strong {
    color: #282434;
    font-size: 20px;
}

.event-pass-qr {
    width: 244px;
    margin: 17px auto 8px;
    padding: 12px;
    border: 1px solid #e3ddf1;
    border-radius: 22px;
    background: #fff;
}

.event-pass-qr img,
.event-pass-qr canvas {
    display: block;
    width: 100% !important;
    height: auto !important;
}

.event-pass-hint {
    margin: 0 20px 18px;
    color: #777185;
    text-align: center;
}

.event-pass-status-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 0 20px 22px;
}

.event-pass-status {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    border-radius: 17px;
    padding: 13px;
    background: #f1eef6;
    color: #777185;
}

.event-pass-status > span {
    display: grid;
    width: 32px;
    height: 32px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: #fff;
}

.event-pass-status div {
    display: grid;
    min-width: 0;
}

.event-pass-status small {
    font-size: 11px;
}

.event-pass-status strong {
    overflow-wrap: anywhere;
    font-size: 13px;
}

.event-pass-status.is-complete {
    background: #e4f7ea;
    color: #168348;
}

.ticket-empty {
    padding: 70px 20px 150px;
    text-align: center;
}

.ticket-empty > span {
    display: grid;
    width: 70px;
    height: 70px;
    margin: 0 auto 15px;
    place-items: center;
    border-radius: 22px;
    background: #eee8ff;
    color: #6540cf;
    font-size: 30px;
}

.ticket-empty h2 {
    margin: 0 0 7px;
}

.ticket-empty p {
    margin: 0 auto;
    max-width: 520px;
    color: #777185;
}

/* Mobile admin ticket scanner */
.ticket-scanner-shell {
    max-width: 860px;
}

.scanner-card {
    display: grid;
    gap: 18px;
    padding: 22px;
    border: 1px solid #ddd6f2;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(54, 43, 104, .1);
}

.scanner-point-selector {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.scanner-point-selector input {
    position: absolute;
    opacity: 0;
}

.scanner-point-selector label span {
    display: grid;
    grid-template-columns: 42px 1fr;
    grid-template-rows: auto auto;
    column-gap: 10px;
    padding: 14px;
    border: 2px solid #e5dff2;
    border-radius: 18px;
    cursor: pointer;
}

.scanner-point-selector b {
    display: grid;
    grid-row: 1 / 3;
    place-items: center;
    border-radius: 13px;
    background: #eee8ff;
    color: #6540cf;
}

.scanner-point-selector small {
    color: #7d768a;
}

.scanner-point-selector input:checked + span {
    border-color: #6540cf;
    background: #f5f1ff;
    box-shadow: 0 8px 20px rgba(101, 64, 207, .12);
}

.scanner-camera-wrap {
    position: relative;
    overflow: hidden;
    min-height: 360px;
    border-radius: 22px;
    background: #282434;
}

.scanner-camera-wrap video {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
}

.scanner-frame {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(62vw, 250px);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    border: 3px solid #fff;
    border-radius: 22px;
    box-shadow: 0 0 0 999px rgba(16, 13, 25, .38);
}

.scanner-camera-wrap p {
    position: absolute;
    right: 18px;
    bottom: 14px;
    left: 18px;
    z-index: 1;
    margin: 0;
    color: #fff;
    text-align: center;
}

.scanner-start {
    width: 100%;
}

.scanner-manual {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 9px;
}

.scanner-manual span {
    grid-column: 1 / -1;
    color: #746e80;
    font-size: 13px;
}

.scanner-manual input {
    min-width: 0;
    border: 1px solid #ddd5ef;
    border-radius: 14px;
    padding: 12px 14px;
    font: inherit;
}

.scanner-hidden-submit {
    display: none;
}

.scanner-result {
    display: grid;
    grid-template-columns: 62px 1fr auto;
    align-items: center;
    gap: 16px;
    margin-top: 18px;
    padding: 20px;
    border-radius: 22px;
    background: #e7f7ec;
    color: #166f42;
}

.scanner-result.is-warning {
    background: #fff2d3;
    color: #9b6200;
}

.scanner-result.is-error {
    background: #ffeaed;
    color: #b5283b;
}

.scanner-result-icon {
    display: grid;
    width: 62px;
    height: 62px;
    place-items: center;
    border-radius: 19px;
    background: rgba(255, 255, 255, .72);
    font-size: 30px;
    font-weight: 900;
}

.scanner-result h2,
.scanner-result p {
    margin: 3px 0;
}

@media (max-width: 640px) {
    .event-pass-status-grid,
    .scanner-point-selector {
        grid-template-columns: 1fr;
    }

    .scanner-card {
        padding: 14px;
    }

    .scanner-camera-wrap,
    .scanner-camera-wrap video {
        min-height: 310px;
        height: 310px;
    }

    .scanner-result {
        grid-template-columns: 52px 1fr;
    }

    .scanner-result .btn {
        grid-column: 1 / -1;
        text-align: center;
    }
}
.admin-manual-payment-note {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #bde5cb;
    border-radius: 16px;
    background: #f0fbf4;
    color: #216a3e;
}

.admin-manual-payment-note strong {
    width: 100%;
    color: #185832;
}

.admin-manual-payment-note .btn {
    margin-left: auto;
    padding: 9px 14px;
}

.admin-file-input {
    width: 100%;
    padding: 10px;
    border: 1px dashed #cfc3f2;
    border-radius: 14px;
    background: #faf8ff;
}

.admin-card-manual-note {
    display: flex;
    flex: 1 0 100%;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    min-width: 0;
    margin-top: 0;
    padding: 9px 12px;
    box-sizing: border-box;
    border-radius: 12px;
    background: #edf9f1;
    color: #287044;
    font-size: .86rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.admin-payment-message {
    display: block;
    margin: 14px 0 0;
    padding: 11px 14px;
    border-radius: 12px;
    font-weight: 700;
}

.admin-payment-message.is-error {
    border: 1px solid #f3b7bd;
    background: #fff0f2;
    color: #b52f3d;
}

.admin-save.is-processing {
    opacity: .72;
    cursor: wait;
}

@media (max-width: 640px) {
    .admin-manual-payment-note .btn {
        width: 100%;
        margin-left: 0;
    }
}
