
:root{--p:#0077b6;--a:#00b4d8;--dark:#03045e;--light:#caf0f8;--bg:#f0f9ff;--wh:#fff;--muted:#6b7280;--text:#1a1a2e;--rad:12px;--rads:8px;--shad:0 4px 24px rgba(0,119,182,.10);--shadl:0 8px 40px rgba(0,119,182,.18);--tr:.2s cubic-bezier(.4,0,.2,1)}
.dcr-calendar-app{font-family:'Segoe UI',system-ui,sans-serif;color:var(--text);background:var(--bg);border-radius:var(--rad);box-shadow:var(--shadl);overflow:hidden}
.dcr-calendar-wrapper{display:flex;min-height:540px}
.dcr-calendar-col{flex:1 1 55%;padding:28px;background:var(--wh);border-right:1px solid #e0f0fa}
.dcr-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.dcr-month-title{font-size:1.3rem;font-weight:700;color:var(--dark);margin:0;letter-spacing:-.02em}
.dcr-nav-btn{background:var(--bg);border:2px solid var(--light);color:var(--p);width:38px;height:38px;border-radius:50%;font-size:1.1rem;font-weight:700;cursor:pointer;transition:var(--tr);display:flex;align-items:center;justify-content:center}
.dcr-nav-btn:hover{background:var(--p);border-color:var(--p);color:#fff;transform:scale(1.05)}
.dcr-day-labels{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}
.dcr-day-labels span{text-align:center;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:4px 0}
.dcr-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.dcr-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--rads);font-size:.88rem;font-weight:500;color:var(--text);transition:var(--tr);min-height:42px;user-select:none;position:relative}
.dcr-day.dcr-today{font-weight:800;color:var(--p)}
.dcr-day.dcr-today::after{content:'';position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--p)}
.dcr-day.dcr-has-dive{background:linear-gradient(135deg,var(--a),var(--p));color:#fff;cursor:pointer;box-shadow:0 2px 10px rgba(0,119,182,.25);font-weight:700}
.dcr-day.dcr-has-dive:hover{transform:translateY(-2px) scale(1.08);box-shadow:0 6px 20px rgba(0,119,182,.4)}
.dcr-day.dcr-dive-full{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}
.dcr-day.dcr-selected{background:var(--dark)!important;color:#fff!important;transform:scale(1.12);box-shadow:0 6px 20px rgba(3,4,94,.35);z-index:2}
.dcr-day-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.8);margin-top:2px}
.dcr-legend{margin-top:18px;display:flex;gap:16px;flex-wrap:wrap}
.dcr-leg-item{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--muted)}
.dcr-leg-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.dcr-dot-dive{background:linear-gradient(135deg,var(--a),var(--p))}
.dcr-dot-full{background:#f3f4f6;border:1px solid #d1d5db}
.dcr-dot-sel{background:var(--dark)}
.dcr-sidebar-col{flex:1 1 45%;padding:28px;background:var(--bg);overflow-y:auto}
.dcr-sidebar-state.dcr-no-sel,#dcr-no-sel{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;padding:40px 20px}
.dcr-no-sel-icon{font-size:3.5rem;margin-bottom:16px;animation:dcr-float 3s ease-in-out infinite}
@keyframes dcr-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
#dcr-no-sel p{color:var(--muted);font-size:.95rem;line-height:1.6;max-width:260px}
#dcr-dive-info{background:var(--wh);border-radius:var(--rad);padding:20px;margin-bottom:18px;border-left:4px solid var(--a);box-shadow:var(--shad)}
#dcr-dive-info h3{margin:0 0 12px;font-size:1.05rem;font-weight:700;color:var(--dark)}
.dcr-dive-meta{display:flex;flex-direction:column;gap:6px}
.dcr-dive-meta-item{display:flex;align-items:center;gap:8px;font-size:.87rem;color:var(--muted)}
.dcr-dive-meta-item strong{color:var(--text)}
.dcr-spots-bar{margin-top:12px}
.dcr-spots-labels{font-size:.76rem;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:4px}
.dcr-spots-track{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}
.dcr-spots-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--a),var(--p));transition:width .4s}
.dcr-spots-fill.warn{background:linear-gradient(90deg,#f59e0b,#ef4444)}
.dcr-spots-fill.full{background:#ef4444}
.dcr-form-title{font-size:1rem;font-weight:700;color:var(--dark);margin:0 0 14px}
.dcr-field{margin-bottom:12px}
.dcr-field label{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.dcr-field input,.dcr-field select,.dcr-field textarea{width:100%;padding:10px 13px;border:2px solid #e5e7eb;border-radius:var(--rads);font-size:.92rem;color:var(--text);background:var(--wh);transition:var(--tr);box-sizing:border-box;font-family:inherit}
.dcr-field input:focus,.dcr-field select:focus,.dcr-field textarea:focus{outline:none;border-color:var(--a);box-shadow:0 0 0 3px rgba(0,180,216,.15)}
.dcr-field textarea{resize:vertical;min-height:72px}
.dcr-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dcr-btn-submit{width:100%;padding:14px;background:linear-gradient(135deg,var(--a),var(--p));color:#fff;border:none;border-radius:var(--rad);font-size:1rem;font-weight:700;cursor:pointer;transition:var(--tr);margin-top:8px;letter-spacing:.02em}
.dcr-btn-submit:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,119,182,.35)}
.dcr-btn-submit:disabled{opacity:.7;cursor:not-allowed;transform:none}
.dcr-btn-outline{background:transparent;border:2px solid var(--p);color:var(--p);padding:10px 20px;border-radius:var(--rad);cursor:pointer;font-size:.9rem;font-weight:600;transition:var(--tr);margin-top:8px}
.dcr-btn-outline:hover{background:var(--p);color:#fff}
.dcr-form-error{background:#fef2f2;border:1px solid #fecaca;color:#ef4444;padding:10px 14px;border-radius:var(--rads);font-size:.87rem;margin-top:8px}
.dcr-success-msg{background:#f0fdf4;border:2px solid #bbf7d0;border-radius:var(--rad);padding:28px;text-align:center;margin-bottom:16px}
.dcr-success-icon{font-size:2.5rem;margin-bottom:10px}
.dcr-success-msg p{margin:6px 0;font-size:.95rem;color:#166534}
.dcr-success-msg p strong{color:#14532d}
.dcr-loading{grid-column:1/-1;display:flex;justify-content:center;align-items:center;padding:40px}
.dcr-spinner{width:32px;height:32px;border:3px solid var(--light);border-top-color:var(--p);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:780px){.dcr-calendar-wrapper{flex-direction:column}.dcr-calendar-col{border-right:none;border-bottom:1px solid #e0f0fa}.dcr-field-row{grid-template-columns:1fr}}
