:root {
    --psb-primary:#7B1113; --psb-primary-light:#9B2335; --psb-accent:#C4A265;
    --psb-gold:#D4A853; --psb-bg:#F5EDDF; --psb-bg-deep:#EBE0CC;
    --psb-white:#FDF6E8; --psb-text:#1A0F0A; --psb-text-mid:#3D2B1F;
    --psb-text-light:#5C4A3E; --psb-border:#C9B99A; --psb-success:#2E6B28;
    --psb-error:#9B1B1B; --psb-radius:10px;
}

/* Papyrus wrapper */
.psb-wrapper {
    max-width:560px; margin:30px auto;
    background:var(--psb-white);
    background-image:
        repeating-linear-gradient(0deg, transparent, transparent 28px, rgba(160,140,110,.06) 28px, rgba(160,140,110,.06) 29px),
        repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(160,140,110,.04) 40px, rgba(160,140,110,.04) 41px),
        linear-gradient(180deg, rgba(200,180,140,.12) 0%, transparent 4%, transparent 96%, rgba(180,160,120,.1) 100%);
    border-radius:16px;
    box-shadow:0 6px 30px rgba(80,50,20,.12), 0 1px 4px rgba(0,0,0,.06), inset 0 0 60px rgba(180,160,120,.08);
    overflow:hidden;
    font-family:Georgia,'Times New Roman',serif;
    color:var(--psb-text);
    border:1px solid rgba(160,140,100,.25);
}

/* Header */
.psb-header {
    background:linear-gradient(135deg, var(--psb-primary), var(--psb-primary-light));
    padding:28px 30px 24px; text-align:center; color:#FDF6E8;
    border-bottom:3px solid var(--psb-gold);
    box-shadow:0 2px 8px rgba(123,17,19,.2);
}
.psb-icon { font-size:36px; margin-bottom:6px; filter:drop-shadow(0 1px 2px rgba(0,0,0,.2)); }
.psb-wrapper .psb-header .psb-title {
    margin:0; font-size:22px; font-weight:700; letter-spacing:.03em;
    color:#FFF3DC !important;
    text-shadow:0 1px 3px rgba(0,0,0,.35);
    font-family:Georgia,'Times New Roman',serif;
}
.psb-wrapper .psb-header .psb-subtitle {
    margin:6px 0 0; font-size:14px;
    color:#F0DFC4 !important;
    text-shadow:0 1px 2px rgba(0,0,0,.25);
}

.psb-form { padding:28px 30px 20px; }
.psb-step { display:none; animation:psbFade .35s ease; }
.psb-step-active { display:block; }
@keyframes psbFade { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

.psb-label { display:block; font-size:16px; font-weight:700; margin-bottom:16px; color:var(--psb-primary); }
.psb-label-small { font-size:14px; margin-bottom:10px; }

/* Servicii */
.psb-servicii-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:24px; }
.psb-serviciu-card input[type="radio"] { display:none; }
.psb-serviciu-card .psb-card-inner {
    display:flex; align-items:center; justify-content:center;
    padding:16px 12px; background:var(--psb-bg); border:2px solid var(--psb-border);
    border-radius:var(--psb-radius); cursor:pointer; transition:all .2s; text-align:center;
}
.psb-serviciu-card .psb-card-inner:hover { border-color:var(--psb-accent); background:var(--psb-white); box-shadow:0 2px 8px rgba(123,17,19,.06); }
.psb-serviciu-card input:checked+.psb-card-inner {
    border-color:var(--psb-primary); background:var(--psb-white);
    box-shadow:0 0 0 3px rgba(123,17,19,.15), 0 2px 8px rgba(123,17,19,.08);
}
.psb-card-label { font-size:15px; font-weight:700; color:var(--psb-text); }

/* Fields */
.psb-field { margin-bottom:18px; }
.psb-field label {
    display:block; font-size:12px; font-weight:700; color:var(--psb-text-mid);
    margin-bottom:5px; text-transform:uppercase; letter-spacing:.06em;
}
.psb-field input, .psb-field textarea, .psb-field select {
    width:100%; padding:11px 14px; font-size:15px; font-family:inherit;
    border:2px solid var(--psb-border); border-radius:8px;
    background:rgba(255,255,255,.7); color:var(--psb-text);
    transition:border-color .2s,box-shadow .2s; box-sizing:border-box;
}
.psb-field input:focus, .psb-field textarea:focus, .psb-field select:focus {
    outline:none; border-color:var(--psb-primary);
    box-shadow:0 0 0 3px rgba(123,17,19,.1); background:rgba(255,255,255,.9);
}
.psb-field input::placeholder, .psb-field textarea::placeholder { color:#9E8E7E; }
.psb-field textarea { resize:vertical; }
.psb-row { display:flex; gap:14px; }
.psb-half { flex:1; }

/* Nav */
.psb-nav {
    display:flex; justify-content:space-between; align-items:center;
    margin-top:24px; padding-top:18px; border-top:1px solid var(--psb-border);
}

/* Buttons */
.psb-btn {
    padding:11px 24px; font-size:14px; font-weight:700; font-family:inherit;
    border:none; border-radius:8px; cursor:pointer; transition:all .2s;
    text-decoration:none; display:inline-block;
}
.psb-btn-next,.psb-btn-submit { background:var(--psb-primary); color:#FDF6E8; box-shadow:0 2px 6px rgba(123,17,19,.2); }
.psb-btn-next:hover,.psb-btn-submit:hover { background:var(--psb-primary-light); transform:translateY(-1px); box-shadow:0 4px 12px rgba(123,17,19,.25); }
.psb-btn-next:disabled,.psb-btn-submit:disabled { opacity:.4; cursor:not-allowed; transform:none; box-shadow:none; }
.psb-btn-back { background:transparent; color:var(--psb-text-light); padding-left:0; }
.psb-btn-back:hover { color:var(--psb-primary); }
.psb-btn-calendar { background:#4285F4; color:#fff!important; margin-bottom:10px; }
.psb-btn-new { background:var(--psb-bg); color:var(--psb-primary); border:2px solid var(--psb-border); }
.psb-btn-new:hover { border-color:var(--psb-primary); }

/* Progress */
.psb-progress { height:4px; background:var(--psb-border); border-radius:2px; margin-top:20px; overflow:hidden; }
.psb-progress-bar { height:100%; background:linear-gradient(90deg,var(--psb-primary),var(--psb-gold)); border-radius:2px; transition:width .4s; }

/* Success */
.psb-success { text-align:center; padding:40px 30px; }
.psb-success-icon { width:60px; height:60px; background:var(--psb-success); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:700; margin:0 auto 16px; box-shadow:0 3px 10px rgba(46,107,40,.25); }
.psb-success h3 { color:var(--psb-success); font-size:20px; margin:0 0 8px; }
.psb-success p { color:var(--psb-text-mid); font-size:15px; margin:0 0 24px; line-height:1.5; }

/* Errors */
.psb-errors { margin:0 30px; padding:14px 18px; background:rgba(155,27,27,.08); border:1px solid rgba(155,27,27,.25); border-radius:8px; color:var(--psb-error); font-size:14px; line-height:1.6; font-weight:600; }

/* ═══ Calendar ════════════════════════════ */
.psb-calendar-wrap {
    background:var(--psb-bg); border:2px solid var(--psb-border);
    border-radius:var(--psb-radius); overflow:hidden; margin-bottom:20px;
}
.psb-cal-header { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; background:var(--psb-primary); color:#FDF6E8; }
.psb-cal-title { font-size:16px; font-weight:700; color:#FFF3DC !important; text-shadow:0 1px 2px rgba(0,0,0,.25); }
.psb-cal-nav { background:rgba(255,255,255,.2); border:none; color:#fff; width:32px; height:32px; border-radius:50%; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.psb-cal-nav:hover { background:rgba(255,255,255,.35); }
.psb-cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:11px; font-weight:700; color:var(--psb-text-mid); padding:10px 8px 6px; text-transform:uppercase; letter-spacing:.06em; }
.psb-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; padding:4px 8px 12px; min-height:200px; }
.psb-cal-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:14px; border-radius:8px; transition:all .15s; font-weight:600; }
.psb-cal-empty { visibility:hidden; }
.psb-cal-disabled { color:#B8A88E; }
.psb-cal-available { background:rgba(46,107,40,.12); color:var(--psb-success); font-weight:700; cursor:pointer; border:2px solid transparent; }
.psb-cal-available:hover { background:rgba(46,107,40,.2); border-color:var(--psb-success); }
.psb-cal-selected { background:var(--psb-primary)!important; color:#FDF6E8!important; border-color:var(--psb-primary)!important; box-shadow:0 2px 8px rgba(123,17,19,.3); }
.psb-cal-loading { grid-column:1/-1; text-align:center; padding:40px 0; color:var(--psb-text-light); font-size:14px; }

/* ═══ Slots ═══════════════════════════════ */
.psb-slots-wrap { margin-bottom:16px; }
.psb-slots-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.psb-slot-btn { padding:10px 8px; background:var(--psb-bg); border:2px solid var(--psb-border); border-radius:8px; font-size:14px; font-weight:700; font-family:inherit; color:var(--psb-text); cursor:pointer; transition:all .15s; text-align:center; }
.psb-slot-btn:hover { border-color:var(--psb-primary); background:var(--psb-white); }
.psb-slot-btn small { display:block; font-size:10px; font-weight:600; color:#B35500; margin-top:2px; }
.psb-slot-selected { background:var(--psb-primary)!important; color:#FDF6E8!important; border-color:var(--psb-primary)!important; }
.psb-slot-selected small { color:#FFCDD2!important; }

/* Custom fields */
.psb-custom-fields { margin-top:16px; padding-top:16px; border-top:1px dashed var(--psb-border); }
.psb-custom-fields-title { font-size:14px; font-weight:700; color:var(--psb-primary); margin-bottom:12px; }

/* Recurring */
.psb-recurring-wrap { margin-top:4px; }
.psb-toggle-label { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:var(--psb-text); cursor:pointer; }
.psb-toggle-label input[type="checkbox"] { width:18px; height:18px; accent-color:var(--psb-primary); }

/* File upload */
.psb-file-input { padding:8px!important; font-size:13px!important; background:rgba(255,255,255,.5)!important; }
.psb-file-list { margin-top:6px; }
.psb-file-item { font-size:13px; color:var(--psb-text-mid); padding:3px 0; font-weight:600; }
.psb-file-item small { color:var(--psb-text-light); font-weight:400; }

/* Responsive */
@media (max-width:480px) {
    .psb-wrapper { margin:15px 10px; border-radius:12px; }
    .psb-form { padding:20px 18px; }
    .psb-header { padding:22px 18px 18px; }
    .psb-servicii-grid { grid-template-columns:1fr; }
    .psb-row { flex-direction:column; gap:0; }
    .psb-slots-grid { grid-template-columns:repeat(3,1fr); }
}

/* Footer credit */
.psb-wrapper .psb-footer-credit {
    text-align:center; padding:14px 20px;
    background:rgba(160,140,110,.10);
    border-top:1px solid var(--psb-border);
    font-size:12px; color:#5C4A3E;
    letter-spacing:.02em;
}
.psb-wrapper .psb-footer-credit a {
    color:#7B1113 !important; text-decoration:none; font-weight:700;
    border-bottom:1px solid rgba(123,17,19,.3);
}
.psb-wrapper .psb-footer-credit a:hover {
    color:#9B2335 !important; border-bottom-color:#9B2335;
}
