:root {
    --ct-forest: #C8102E;
    --ct-forest-2: #A50D25;
    --ct-leaf: #D65B6F;
    --ct-sage: #FCE8EB;
    --ct-cream: #fff8fb;
    --ct-paper: #fffafd;
    --ct-rose: #AE233A;
    --ct-gold: #C8102E;
    --ct-ink: #33252c;
    --ct-muted: #75646d;
    --ct-line: #ece2e6;
    --ct-danger: #a63d3d;
    --ct-shadow: 0 24px 70px rgba(102,30,56, .15);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
    font-family: Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    color: var(--ct-ink);
    background: var(--ct-cream);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
button, input, textarea, select { font: inherit; }
a { color: inherit; }
[hidden] { display: none !important; }

.ct-public-page {
    min-height: 100vh;
    min-height: 100svh;
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 5%, rgba(223,119,155,.20), transparent 29rem),
        radial-gradient(circle at 92% 86%, rgba(168,95,104,.12), transparent 26rem),
        var(--ct-cream);
}

.ct-public-page::before,
.ct-public-page::after {
    content: "";
    position: fixed;
    pointer-events: none;
    border: 1px solid rgba(222,24,89,.10);
    border-radius: 55% 45% 60% 40%;
    transform: rotate(28deg);
}
.ct-public-page::before { width: 330px; height: 510px; left: -175px; top: -120px; }
.ct-public-page::after { width: 280px; height: 430px; right: -160px; bottom: -120px; transform: rotate(-32deg); }

.ct-public-shell {
    width: min(1180px, calc(100% - 34px));
    min-height: 100vh;
    min-height: 100svh;
    margin: 0 auto;
    padding: 28px 0;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: clamp(28px, 6vw, 76px);
    align-items: center;
    position: relative;
    z-index: 1;
}

.ct-brand-panel { padding: clamp(10px, 4vw, 38px); }
.ct-brand-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 34px;
    padding: 0 13px;
    border-radius: 999px;
    border: 1px solid rgba(222,24,89,.14);
    color: var(--ct-forest);
    background: rgba(255,250,253,.65);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ct-brand-kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ct-rose); box-shadow: 0 0 0 4px rgba(168,95,104,.10); }
.ct-brand-title {
    margin: 24px 0 12px;
    max-width: 680px;
    color: var(--ct-forest);
    font-size: clamp(46px, 7vw, 82px);
    line-height: .96;
    letter-spacing: -.055em;
    font-weight: 900;
}
.ct-brand-title span { display: block; color: var(--ct-rose); font-family: Georgia, "Times New Roman", serif; font-style: italic; font-weight: 600; font-size: .62em; letter-spacing: -.025em; margin-top: 10px; }
.ct-brand-copy { max-width: 620px; margin: 0; color: var(--ct-muted); font-size: clamp(15px, 1.6vw, 18px); line-height: 1.75; }
.ct-brand-points { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.ct-brand-point { padding: 9px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--ct-line); color: #524147; font-size: 12px; font-weight: 800; box-shadow: 0 8px 22px rgba(99,34,57,.05); }

.ct-flower-mark {
    width: 74px;
    height: 74px;
    border-radius: 24px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--ct-forest);
    box-shadow: 0 18px 36px rgba(222,24,89,.20);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 34px;
    font-weight: 700;
}
.ct-flower-mark small { position: absolute; width: 16px; height: 28px; border-radius: 100% 0 100% 0; background: #ca7d98; transform: translate(24px,-24px) rotate(24deg); }

.ct-entry-card,
.ct-form-card {
    border: 1px solid rgba(222,24,89,.10);
    border-radius: 32px;
    background: rgba(255,250,253,.94);
    box-shadow: var(--ct-shadow);
    backdrop-filter: blur(18px);
}
.ct-entry-card { padding: clamp(24px, 4vw, 38px); }
.ct-entry-card h2, .ct-form-card h1 { margin: 0; color: var(--ct-forest); letter-spacing: -.035em; font-weight: 900; }
.ct-entry-card h2 { font-size: clamp(28px, 4vw, 40px); }
.ct-card-copy { margin: 9px 0 22px; color: var(--ct-muted); font-size: 14px; line-height: 1.65; }
.ct-entry-actions { display: grid; gap: 11px; }
.ct-btn {
    min-height: 58px;
    border-radius: 18px;
    border: 1px solid transparent;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-decoration: none;
    cursor: pointer;
    font-weight: 880;
    font-size: 15px;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.ct-btn:active { transform: translateY(1px) scale(.995); }
.ct-btn-primary { color: #fff; background: var(--ct-forest); box-shadow: 0 14px 30px rgba(222,24,89,.20); }
.ct-btn-primary:hover { background: var(--ct-forest-2); }
.ct-btn-soft { color: var(--ct-forest); background: var(--ct-sage); border-color: #e6becc; }
.ct-btn-outline { color: #46393d; background: #fff; border-color: var(--ct-line); }
.ct-btn-ghost { color: var(--ct-muted); background: transparent; border-color: transparent; }

.ct-campaign {
    margin-top: 18px;
    padding: 15px 17px;
    border-radius: 19px;
    border: 1px solid rgba(168,95,104,.18);
    background: #fff8f5;
}
.ct-campaign strong { display: block; margin-bottom: 5px; color: var(--ct-rose); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.ct-campaign div { color: #654e50; font-size: 13px; line-height: 1.55; white-space: pre-line; }
.ct-card-foot { margin-top: 18px; color: #a57988; font-size: 11px; text-align: center; }

.ct-form-shell {
    width: min(1040px, calc(100% - 32px));
    min-height: 100vh;
    min-height: 100svh;
    margin: 0 auto;
    padding: 28px 0;
    display: grid;
    place-items: center;
    position: relative;
    z-index: 1;
}
.ct-form-card { width: min(100%, 760px); padding: clamp(22px, 4vw, 38px); }
.ct-form-head { display: flex; gap: 16px; align-items: center; margin-bottom: 24px; }
.ct-form-head .ct-flower-mark { width: 54px; height: 54px; border-radius: 18px; font-size: 26px; flex: 0 0 auto; }
.ct-form-head h1 { font-size: clamp(25px, 4vw, 34px); }
.ct-form-head p { margin: 5px 0 0; color: var(--ct-muted); font-size: 13px; line-height: 1.5; }
.ct-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; }
.ct-field { min-width: 0; }
.ct-field.full { grid-column: 1 / -1; }
.ct-field label { display: block; margin: 0 0 7px; color: #4a3c41; font-size: 12px; font-weight: 850; }
.ct-required { color: var(--ct-rose); }
.ct-input, .ct-field input, .ct-field textarea, .ct-field select {
    width: 100%;
    min-height: 52px;
    border: 1px solid #e6dade;
    border-radius: 15px;
    padding: 0 14px;
    outline: none;
    color: var(--ct-ink);
    background: #fff;
    font-size: 15px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.ct-field textarea { min-height: 96px; padding-top: 13px; resize: vertical; }
.ct-field input:focus, .ct-field textarea:focus, .ct-field select:focus, .ct-input:focus { border-color: var(--ct-leaf); box-shadow: 0 0 0 4px rgba(223,119,155,.13); }
.ct-validation { display: block; margin-top: 5px; color: var(--ct-danger); font-size: 11px; font-weight: 750; }
.ct-alert { margin-bottom: 17px; padding: 12px 14px; border: 1px solid #ecc7c7; border-radius: 15px; color: var(--ct-danger); background: #fff5f3; font-size: 13px; font-weight: 760; line-height: 1.5; }
.ct-form-actions { grid-column: 1 / -1; display: flex; gap: 10px; margin-top: 4px; }
.ct-form-actions .ct-btn { flex: 1; }
.ct-back-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 17px; color: #805564; text-decoration: none; font-size: 12px; font-weight: 800; }
.ct-help-note { margin: -4px 0 18px; padding: 12px 14px; border-radius: 14px; color: #68545b; background: #f4f6f1; font-size: 12px; line-height: 1.55; }

.ct-login-card { max-width: 540px; }
.ct-login-company { margin-left: auto; color: var(--ct-muted); font-size: 12px; font-weight: 800; }
.ct-checkbox { display: inline-flex; align-items: center; gap: 8px; color: #5a484e; font-size: 12px; font-weight: 800; }
.ct-checkbox input { width: 18px; height: 18px; accent-color: var(--ct-forest); }

@media (max-width: 840px) {
    .ct-public-shell { grid-template-columns: 1fr; gap: 18px; align-content: center; padding: 24px 0; }
    .ct-brand-panel { padding: 10px 5px 0; text-align: center; }
    .ct-flower-mark { margin: 0 auto; }
    .ct-brand-title { margin-left: auto; margin-right: auto; }
    .ct-brand-copy { margin-left: auto; margin-right: auto; }
    .ct-brand-points { justify-content: center; }
    .ct-entry-card { width: min(100%, 600px); margin: 0 auto; }
}

@media (max-width: 620px) {
    .ct-public-shell, .ct-form-shell { width: min(100% - 20px, 100%); padding: 14px 0; }
    .ct-brand-title { font-size: clamp(42px, 15vw, 62px); margin-top: 16px; }
    .ct-brand-copy { font-size: 14px; line-height: 1.6; }
    .ct-brand-points { display: none; }
    .ct-entry-card, .ct-form-card { border-radius: 24px; padding: 19px; }
    .ct-form-grid { grid-template-columns: 1fr; }
    .ct-field.full, .ct-form-actions { grid-column: auto; }
    .ct-form-actions { flex-direction: column; }
    .ct-form-head { align-items: flex-start; }
    .ct-login-company { display: none; }
}

.ct-brand-logo { display:block; width:min(100%,620px); height:auto; max-height:210px; object-fit:contain; object-position:left center; margin:0 0 18px; filter:drop-shadow(0 14px 26px rgba(222,24,89,.12)); }
.ct-brand-title-compact { margin-top:16px; font-size:clamp(34px,5vw,62px); }
.ct-login-logo-wrap { display:flex; justify-content:center; margin:0 0 22px; padding-bottom:18px; border-bottom:1px solid var(--ct-line); }
.ct-login-logo { display:block; width:min(100%,440px); height:auto; max-height:145px; object-fit:contain; }
.ct-login-head { margin-bottom:20px; }
@media (max-width:840px) { .ct-brand-logo { margin-left:auto; margin-right:auto; object-position:center; } }
@media (max-width:620px) { .ct-brand-logo { max-height:145px; margin-bottom:10px; } .ct-brand-title-compact { font-size:clamp(30px,11vw,46px); } .ct-login-logo { max-height:110px; } .ct-login-logo-wrap { margin-bottom:16px; padding-bottom:14px; } }

/* 2026-09 PWA / mobile app layout */
.ct-public-shell,
.ct-form-shell {
    width: calc(100% - 12px);
    max-width: none;
}
.ct-form-card { max-width: 640px; }
.ct-install-panel {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--ct-line);
}
.ct-btn-install {
    width: 100%;
    min-height: 50px;
    color: var(--ct-forest);
    background: #fff0f5;
    border-color: #e4bcca;
}
.ct-install-icon {
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #fff;
    background: var(--ct-forest);
    font-size: 16px;
    font-weight: 900;
}
.ct-install-hint {
    margin-top: 7px;
    color: var(--ct-muted);
    font-size: 10px;
    line-height: 1.45;
    text-align: center;
}
@media (max-width: 840px) {
    .ct-public-page { overflow-x:hidden; overflow-y:auto; }
    .ct-public-shell { gap: 10px; padding: 10px 0; align-content:start; }
    .ct-brand-panel { padding: 4px 2px 0; }
    .ct-brand-logo { max-height: 105px; margin-bottom: 4px; }
    .ct-brand-kicker { min-height: 27px; padding: 0 9px; font-size: 9px; }
    .ct-brand-title-compact { margin-top: 8px; font-size: clamp(28px, 8vw, 42px); }
    .ct-brand-title span { margin-top: 5px; }
    .ct-brand-copy { font-size: 12px; line-height: 1.45; }
    .ct-entry-card, .ct-form-card { border-radius: 18px; box-shadow: 0 12px 34px rgba(102,30,56,.10); }
}
@media (max-width: 620px) {
    .ct-public-shell,
    .ct-form-shell { width: calc(100% - 6px); padding: 5px 0; }
    .ct-brand-panel { padding-top: 2px; }
    .ct-brand-logo { max-height: 78px; margin-bottom: 2px; }
    .ct-brand-title-compact { margin-top: 5px; font-size: clamp(24px, 8.5vw, 34px); }
    .ct-brand-copy { font-size: 11px; }
    .ct-entry-card, .ct-form-card { padding: 13px; border-radius: 15px; }
    .ct-entry-card h2 { font-size: 24px; }
    .ct-card-copy { margin: 5px 0 12px; font-size: 11px; }
    .ct-btn { min-height: 46px; border-radius: 13px; font-size: 12px; }
    .ct-form-head { margin-bottom: 12px; }
    .ct-form-head h1 { font-size: 24px; }
    .ct-form-head p { font-size: 10px; }
    .ct-login-logo-wrap { margin-bottom: 8px; padding-bottom: 8px; }
    .ct-login-logo { max-height: 72px; }
    .ct-help-note { margin-bottom: 10px; padding: 8px 9px; font-size: 10px; }
    .ct-form-grid { gap: 9px; }
    .ct-field label { margin-bottom: 4px; font-size: 10px; }
    .ct-input, .ct-field input, .ct-field textarea, .ct-field select { min-height: 45px; border-radius: 12px; font-size: 13px; }
    .ct-checkbox { font-size: 10px; }
    .ct-form-actions { gap: 6px; }
    .ct-install-panel { margin-top: 8px; padding-top: 8px; }
    .ct-btn-install { min-height: 44px; }
    .ct-back-link { margin-top: 9px; font-size: 10px; }
}

/* 2026-09-26 birleşik karşılama + cari giriş ekranı */
.ct-public-page { overflow-x:hidden; overflow-y:auto; }
.ct-unified-shell {
    width:calc(100% - 12px);
    min-height:100vh;
    min-height:100svh;
    margin:0 auto;
    padding:10px 0;
    display:grid;
    place-items:center;
    position:relative;
    z-index:1;
}
.ct-unified-card {
    width:min(100%,560px);
    padding:20px;
    border-radius:22px;
}
.ct-home-logo-link { display:block; text-decoration:none; }
.ct-home-logo { display:block; width:min(100%,470px); max-height:138px; margin:0 auto 14px; object-fit:contain; }
.ct-unified-head { margin-bottom:14px; text-align:center; }
.ct-unified-head h1 { margin:0; color:var(--ct-forest); font-size:30px; line-height:1.1; letter-spacing:-.035em; }
.ct-unified-head p { margin:6px auto 0; max-width:440px; color:var(--ct-muted); font-size:12px; line-height:1.5; }
.ct-login-grid { gap:10px; }
.ct-login-options { display:flex; align-items:center; justify-content:space-between; grid-column:1/-1; }
.ct-login-submit { grid-column:1/-1; width:100%; }
.ct-entry-divider { display:flex; align-items:center; gap:10px; margin:14px 0; color:#b08896; font-size:10px; font-weight:800; text-transform:uppercase; }
.ct-entry-divider::before,.ct-entry-divider::after { content:""; flex:1; height:1px; background:var(--ct-line); }
.ct-entry-actions-inline { grid-template-columns:1fr 1fr; gap:8px; }
.ct-card-foot a { color:var(--ct-forest); font-weight:850; text-decoration:none; }
.ct-card-foot a:hover { text-decoration:underline; }

@media (max-width:620px) {
    .ct-unified-shell { width:calc(100% - 6px); padding:3px 0; place-items:start center; }
    .ct-unified-card { width:100%; padding:12px; border-radius:14px; }
    .ct-home-logo { max-height:82px; margin-bottom:7px; }
    .ct-unified-head { margin-bottom:9px; }
    .ct-unified-head h1 { font-size:23px; }
    .ct-unified-head p { margin-top:4px; font-size:10px; }
    .ct-login-grid { gap:7px; }
    .ct-entry-divider { margin:9px 0; }
    .ct-entry-actions-inline { gap:5px; }
    .ct-entry-actions-inline .ct-btn { min-height:42px; padding:0 8px; font-size:10px; }
    .ct-campaign { margin-top:9px; padding:9px 10px; border-radius:12px; }
    .ct-card-foot { margin-top:10px; }
}

/* 2026-09-26 giriş ekranında eski kurumsal sol panel + birleşik giriş */
.ct-login-public-shell { align-items:center; }
.ct-login-entry-card { width:100%; max-width:560px; justify-self:end; }
@media (max-width:840px) {
    .ct-login-public-shell { align-content:start; }
    .ct-login-entry-card { justify-self:center; }
}


/* 2026-10-06: mobile form usability pass */
@media (max-width: 620px) {
    html, body { overflow-x: hidden; }
    .ct-page, .ct-shell { max-width: 100%; }
    .ct-btn,
    .ct-entry-actions-inline .ct-btn,
    .ct-btn-install { min-height: 44px; font-size: 12px; }
    .ct-field label { font-size: 11px; }
    .ct-input,
    .ct-field input,
    .ct-field textarea,
    .ct-field select { min-height: 46px; font-size: 16px; }
    .ct-field textarea { min-height: 104px; }
}


/* Karşılama: üç seçimli bayi / başvuru / misafir ekranı */
.ct-welcome-page {
    display: grid;
    place-items: center;
    padding: clamp(18px, 5vw, 48px) 14px;
    background: radial-gradient(ellipse at 5% 8%, rgba(231,181,198,.55), transparent 48%),
                radial-gradient(ellipse at 100% 90%, rgba(220,180,154,.27), transparent 45%),
                linear-gradient(135deg, #f5f6f1, #f9eef2 50%, #f9f6ed);
}
.ct-welcome-card {
    position: relative;
    z-index: 1;
    width: min(100%, 510px);
    padding: clamp(28px, 5vw, 48px);
    border: 1px solid rgba(108,24,54,.12);
    border-radius: 32px;
    background: rgba(255,255,252,.96);
    box-shadow: 0 26px 76px rgba(106,27,54,.13);
    text-align: center;
}
.ct-welcome-logo { display:block; width:min(100%, 330px); max-height:150px; object-fit:contain; margin:0 auto 18px; }
.ct-welcome-kicker { color:#ac8650; font-weight:900; font-size:11px; letter-spacing:.14em; }
.ct-welcome-card h1 { color:var(--ct-forest); margin:11px 0 26px; font-size:clamp(30px,5.5vw,42px); letter-spacing:-.05em; line-height:1.12; }
.ct-welcome-choices { display:grid; gap:12px; }
.ct-welcome-choice {
    min-height:75px; display:flex; align-items:center; gap:15px;
    padding:12px 16px; border-radius:19px; border:1px solid rgba(108,25,54,.12);
    color:var(--ct-forest); background:#fcf6f8; text-decoration:none;
    box-shadow:0 5px 18px rgba(104,28,55,.04); text-align:left;
    transition:background .18s, transform .18s, box-shadow .18s;
}
.ct-welcome-choice:hover { transform:translateY(-2px); box-shadow:0 12px 24px rgba(104,28,55,.11); }
.ct-welcome-choice:focus-visible { outline:3px solid #bb9454; outline-offset:3px; }
.ct-choice-icon { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border-radius:13px; background:rgba(110,22,53,.11); font-size:25px; }
.ct-choice-label { flex:1; font-size:16px; font-weight:850; letter-spacing:-.02em; }
.ct-choice-arrow { flex:0 0 28px; height:28px; display:grid; place-items:center; border-radius:100%; background:rgba(222,24,89,.1); font-size:20px; }
.ct-choice-dealer { background:linear-gradient(110deg,#B81D24,#B81D24); color:#fff; border-color:#B81D24; }
.ct-choice-dealer .ct-choice-icon,.ct-choice-dealer .ct-choice-arrow { background:rgba(255,255,255,.13); }
.ct-choice-register { background:linear-gradient(110deg,#faf2df,#f4ead1); color:#553c17; border-color:#ebdbb8; }
.ct-choice-register .ct-choice-icon,.ct-choice-register .ct-choice-arrow { background:rgba(132,95,39,.1); }
.ct-choice-guest { background:#f5f7f2; }
.ct-guest-notice {
    display:flex; align-items:flex-start; gap:14px; padding:18px; margin:0 0 22px;
    background:linear-gradient(125deg,#f7e9ee,#fcf4f7); border:1px solid #e8c5d1;
    border-radius:18px; box-shadow:0 8px 22px rgba(110,22,53,.06);
}
.ct-guest-notice-icon { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:13px; background:#B81D24; color:#fff; font-size:22px; }
.ct-guest-notice-content { min-width:0; }
.ct-guest-notice-content strong { display:block; color:#C8102E; font-size:17px; line-height:1.4; }
.ct-guest-notice-content p { margin:7px 0 11px; color:#5d4a51; line-height:1.65; font-size:13px; }
.ct-guest-notice-content a { display:inline-flex; gap:10px; align-items:center; color:#bc1550; font-size:13px; font-weight:900; text-underline-offset:3px; }
@media (max-width:620px) {
    .ct-welcome-page { padding:16px 12px; }
    .ct-welcome-card { padding:28px 19px; border-radius:25px; }
    .ct-welcome-logo { max-height:110px; width:min(100%,270px); }
    .ct-welcome-card h1 { margin-bottom:22px; }
    .ct-welcome-choice { min-height:69px; padding:11px 13px; gap:11px; }
    .ct-choice-icon { height:41px; width:41px; flex-basis:41px; }
    .ct-choice-label { font-size:14px; }
    .ct-guest-notice { padding:13px; gap:10px; }
    .ct-guest-notice-icon { width:35px; height:35px; flex-basis:35px; }
    .ct-guest-notice-content strong { font-size:15px; }
}


/* 3 Can Toptan logo paleti — bayi / misafir / kayıt / karşılama */
:root {
    --ct-forest: #C8102E;
    --ct-forest-2: #A50D25;
    --ct-leaf: #D65B6F;
    --ct-sage: #FCE8EB;
    --ct-cream: #fff8fb;
    --ct-paper: #fffafd;
    --ct-rose: #C8102E;
    --ct-gold: #cc6184;
    --ct-ink: #33252c;
    --ct-muted: #75646d;
    --ct-line: #f1dce5;
    --ct-shadow: 0 24px 70px rgba(111,18,57,.13);
}
.ct-welcome-page {
    background:radial-gradient(ellipse at 7% 5%,rgba(248,164,194,.28),transparent 46%),
               radial-gradient(ellipse at 100% 88%,rgba(251,205,223,.42),transparent 47%),
               linear-gradient(140deg,#fffafd,#fff0f6 52%,#fff9fc);
}
.ct-welcome-card { border-color:rgba(222,24,89,.14); box-shadow:0 26px 76px rgba(147,17,68,.13); }
.ct-welcome-logo { width:min(100%,240px); max-height:240px; margin-bottom:12px; }
.ct-welcome-kicker { color:#B81D24; }
.ct-choice-dealer { background:linear-gradient(110deg,#B81D24,#C8102E); border-color:#A50D25; }
.ct-choice-register { background:linear-gradient(110deg,#ffebf3,#ffdeec); color:#84274a; border-color:#f6c4d6; }
.ct-choice-guest { background:#fff5f9; }
.ct-welcome-choice { border-color:rgba(222,24,89,.12); }
.ct-welcome-choice:focus-visible { outline-color:#C8102E; }
.ct-guest-notice { background:linear-gradient(125deg,#ffebf3,#fff7fa); border-color:#f5c7d7; }
.ct-guest-notice-icon { background:#C8102E; }
.ct-guest-notice-content strong { color:#A50D25; }
.ct-guest-notice-content a { color:#B81D24; }
.ct-login-logo { max-height:190px; max-width:220px; }
.ct-form-card,.ct-entry-card { border-color:rgba(222,24,89,.12); }
.ct-field input:focus,.ct-field textarea:focus,.ct-field select:focus,.ct-input:focus { border-color:#C8102E; box-shadow:0 0 0 4px rgba(222,24,89,.12); }
@media (max-width:620px) {
    .ct-welcome-logo { width:min(100%,170px); max-height:170px; margin-bottom:8px; }
    .ct-login-logo { max-height:134px; }
}

/* Otomatik bayi kaydı bilgi notu */
.ct-registration-note { margin: 12px 0 20px; padding: 11px 14px; border-radius: 10px; background: #e7f6ee; color: #17623b; font-size: .93rem; line-height: 1.5; }

/* Bayrak kırmızısı bayi teması ve şifre desteği */
.ct-forgot-password {display:inline-flex;align-items:center;justify-content:center;margin-top:14px;padding:10px 14px;border:1px solid #C8102E;border-radius:10px;color:#C8102E;text-decoration:none;font-size:13px;font-weight:800;}
.ct-forgot-password:hover,.ct-forgot-password:focus-visible{background:#FCE8EB;}


/* Yalnızca giriş / bayi başvurusu / misafir / karşılama ekranlarının WhatsApp iletişimi.
   Katalogdaki .whatsapp-fab sınıfı etkilenmez. */
.ct-public-whatsapp {
    position: fixed;
    right: 22px;
    bottom: max(22px, env(safe-area-inset-bottom));
    z-index: 1050;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 64px;
    max-width: calc(100vw - 24px);
    padding: 13px 20px;
    border: 1px solid rgba(255,255,255,.40);
    border-radius: 22px;
    background: #21c75b;
    color: white;
    font-size: 16px;
    font-weight: 850;
    text-decoration: none;
    box-shadow: 0 13px 35px rgba(21,117,60,.31);
    transition: transform .18s, background .18s, box-shadow .18s;
}
.ct-public-whatsapp:hover { background: #19b850; color: #fff; transform: translateY(-2px); box-shadow: 0 18px 38px rgba(21,117,60,.38); }
.ct-public-whatsapp:focus-visible { outline: 3px solid #C8102E; outline-offset: 4px; }
.ct-public-whatsapp-icon { display: block; width: 35px; height: 35px; flex: 0 0 35px; }
.ct-forgot-password { margin-top: 8px; align-self: flex-start; font-size: 14px; padding: 8px 12px; }
@media (max-width: 620px) {
    .ct-public-whatsapp {
        right: 12px;
        bottom: max(12px, env(safe-area-inset-bottom));
        min-height: 60px;
        gap: 9px;
        padding: 11px 14px;
        border-radius: 18px;
        font-size: 13px;
    }
    .ct-public-whatsapp-icon { width: 32px; height: 32px; flex-basis: 32px; }
    .ct-public-page:has(+ .ct-public-whatsapp),
    .ct-public-page:has(~ .ct-public-whatsapp) { padding-bottom: 84px; }
}
@media (prefers-reduced-motion: reduce) {
    .ct-public-whatsapp { transition: none; }
}


/* Bayi girişi: Beni Hatırla ve Şifremi Unuttum her genişlikte aynı satırda. */
.ct-login-remember-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 8px;
}
.ct-login-remember-row .ct-checkbox {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    flex: 0 0 auto;
    gap: 6px;
    margin: 0;
    white-space: nowrap;
    font-size: clamp(10px, 2.6vw, 12px);
    line-height: 1.3;
    cursor: pointer;
}
.ct-login-remember-row .ct-checkbox input {
    width: 17px;
    height: 17px;
    min-height: 0;
    padding: 0;
    flex: 0 0 17px;
    accent-color: #C8102E;
}
.ct-login-remember-row .ct-forgot-password {
    flex: 0 1 auto;
    min-width: 0;
    margin: 0;
    padding: 7px 0;
    border: 0;
    background: transparent;
    white-space: nowrap;
    font-size: clamp(10px, 2.6vw, 12px);
    line-height: 1.3;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ct-login-remember-row .ct-forgot-password:hover,
.ct-login-remember-row .ct-forgot-password:focus-visible {
    background: transparent;
    color: #A50D25;
}

/* Giriş öncesi sabit WhatsApp iletişim alanı (katalogdaki buton etkilenmez). */
.ct-public-whatsapp {
    min-height: 70px;
    padding: 14px 20px;
}
.ct-public-whatsapp-icon {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
}
@media (max-width: 620px) {
    .ct-public-whatsapp { min-height: 62px; padding: 11px 14px; }
    .ct-public-whatsapp-icon { width: 34px; height: 34px; flex-basis: 34px; }
}

/* Karşılama ekranında kompakt uygulama yükleme düğmesi. */
.ct-welcome-install { margin-top: 17px; text-align: center; }
.ct-install-app-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 36px;
    padding: 8px 13px;
    border: 1px solid rgba(200,16,46,.30);
    border-radius: 10px;
    color: #B81D24;
    background: #fff9fb;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color .15s, border-color .15s;
}
.ct-install-app-btn:hover { background: #FCE8EB; border-color: #C8102E; }
.ct-install-app-btn:focus-visible { outline: 3px solid #C8102E; outline-offset: 3px; }
.ct-install-app-btn svg { flex: 0 0 16px; }
.ct-install-app-hint {
    max-width: 360px;
    margin: 9px auto 0;
    padding: 9px 12px;
    border-radius: 10px;
    color: #66535a;
    background: #fff3f7;
    font-size: 11px;
    line-height: 1.45;
}
@media (max-width: 620px) {
    .ct-welcome-install { margin-top: 12px; }
    .ct-install-app-btn { min-height: 36px; font-size: 11px; }
}
