:root{--primary:#2563eb;--primary-hover:#1d4ed8;--bg-dark:#0f172a;--card-bg:#1e293b;--card-border:#334155;--text-main:#f8fafc;--text-muted:#94a3b8;--accent-green:#10b981;--accent-red:#ef4444;--radius-lg:16px;--radius-md:10px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5}.container{width:100%;max-width:1280px;margin:0 auto;padding:16px}@media (width>=768px){.container{padding:32px 24px}}header{text-align:center;margin-bottom:24px;padding:20px 12px}header h1{background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.8rem;font-weight:800}header p{color:var(--text-muted);margin-top:6px;font-size:.95rem}@media (width>=768px){header h1{font-size:2.5rem}header p{font-size:1.1rem}}.candidate-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);margin-bottom:32px;padding:20px;box-shadow:0 4px 20px #0003}.candidate-card h3{color:#60a5fa;margin-bottom:14px;font-size:1.1rem}.input-group{flex-direction:column;gap:12px;display:flex}@media (width>=640px){.input-group{flex-direction:row}}.input-field{border-radius:var(--radius-md);border:1px solid var(--card-border);color:#fff;background:#0f172a;outline:none;width:100%;padding:12px 16px;font-size:.95rem;transition:border-color .2s}.input-field:focus{border-color:var(--primary)}.grid{grid-template-columns:1fr;gap:20px;display:grid}@media (width>=640px){.grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.grid{grid-template-columns:repeat(3,1fr);gap:28px}}.card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--card-border);flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000059}.card-img-wrapper{background-color:#000;width:100%;height:200px;position:relative}.card img{object-fit:cover;width:100%;height:100%}.badge-city{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ad9;border:1px solid #ffffff1a;border-radius:20px;padding:4px 10px;font-size:.8rem;font-weight:600;position:absolute;top:12px;left:12px}.card-body{flex-direction:column;flex-grow:1;padding:20px;display:flex}.card-title{margin-bottom:8px;font-size:1.15rem;font-weight:700;line-height:1.3}.price{color:var(--accent-green);margin-bottom:16px;font-size:1.3rem;font-weight:800}.slots-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:10px;font-size:.85rem}.slots-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:auto;display:grid}.btn-slot{color:#fff;border-radius:var(--radius-md);cursor:pointer;background:#334155;border:none;width:100%;padding:10px 8px;font-size:.85rem;font-weight:600;transition:all .2s}.btn-slot:hover{background:var(--primary);transform:scale(1.02)}.btn-slot:active{transform:scale(.98)}.alert-banner{border-radius:var(--radius-lg);border:1px dashed var(--primary);text-align:center;background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);margin-top:48px;padding:28px 20px}.alert-banner h2{margin-bottom:8px;font-size:1.3rem}.alert-banner p{color:var(--text-muted);margin-bottom:20px;font-size:.95rem}.alert-form{flex-direction:column;gap:10px;max-width:500px;margin:0 auto;display:flex}@media (width>=640px){.alert-form{flex-direction:row}}.status-msg{border-radius:var(--radius-md);text-align:center;z-index:1000;width:calc(100% - 32px);max-width:450px;padding:14px 20px;font-size:.95rem;font-weight:600;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #00000080}.status-msg.success{background:var(--accent-green);color:#fff}.status-msg.error{background:var(--accent-red);color:#fff}.status-msg.info{background:var(--primary);color:#fff}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,100%)}to{opacity:1;transform:translate(-50%)}}
