*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;line-height:1.6;color:#333;background-color:#f5f5f5}.container{max-width:1000px;margin:0 auto;padding:20px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;border-bottom:1px solid #ddd}.header h1{font-size:24px;color:#2c3e50}.user-info{display:flex;align-items:center}.user-info span{margin-right:15px;font-weight:bold}.logout-btn{padding:5px 10px;background-color:#e74c3c;color:#fff;text-decoration:none;border-radius:4px;font-size:14px}.logout-btn:hover{background-color:#c0392b}.main-content{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1);padding:25px;margin-bottom:30px}.view-all-link{margin-bottom:20px;text-align:right}.calendar-section{margin-bottom:30px}.calendar-section h2{font-size:20px;margin-bottom:15px;color:#2c3e50}.month-selector{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.month-selector h3{font-size:18px;margin:0}.month-selector button{padding:5px 10px;font-size:16px}.month-selector button span{font-weight:bold}.calendar{width:100%;border-collapse:collapse}.calendar table{width:100%;border-collapse:collapse}.calendar th{padding:10px;text-align:center;font-weight:bold;border:1px solid #ddd;background-color:#f5f5f5}.calendar td{padding:0;border:1px solid #ddd;vertical-align:top;height:70px;width:14.28%}.calendar .calendar-day{position:relative;padding:10px;min-height:70px;cursor:pointer}.calendar .calendar-day:hover{background-color:#f0f8ff}.calendar .calendar-day .day-number{font-size:16px;font-weight:bold}.calendar .calendar-day.today{background-color:#e8f5e9}.calendar .calendar-day.today .day-number{color:#2e7d32}.calendar .calendar-day.selected{background-color:#e3f2fd}.calendar .calendar-day.selected .day-number{color:#1565c0}.calendar .calendar-day.past{background-color:#f5f5f5;color:#aaa;cursor:not-allowed}.calendar .calendar-day.other-month{background-color:#f9f9f9;color:#bbb}.parking-selection{margin-bottom:30px}.parking-selection h2{font-size:20px;margin-bottom:15px;color:#2c3e50}.selected-date-display{margin-bottom:15px;padding:10px;background-color:#f0f8ff;border:1px solid #b0d0f0;border-radius:4px;font-weight:bold}.search-section{margin-bottom:30px}.search-section h2{font-size:20px;margin-bottom:15px;color:#2c3e50}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:bold}.form-control{display:block;width:100%;padding:8px 12px;font-size:16px;border:1px solid #ddd;border-radius:4px}.form-control:focus{border-color:#3498db;outline:none}.required{margin-left:8px;padding:2px 6px;background-color:#e74c3c;color:#fff;font-size:12px;border-radius:3px}.error-message{color:#e74c3c;font-size:14px;margin-top:5px}.form-actions{margin-top:20px;display:flex;gap:10px}.btn{display:inline-block;padding:8px 16px;font-size:16px;border:none;border-radius:4px;cursor:pointer}.btn.btn-primary{background-color:#3498db;color:#fff}.btn.btn-primary:hover{background-color:#2980b9}.btn.btn-success{background-color:#2ecc71;color:#fff}.btn.btn-success:hover{background-color:#27ae60}.btn.btn-secondary{background-color:#95a5a6;color:#fff}.btn.btn-secondary:hover{background-color:#7f8c8d}.btn.btn-danger{background-color:#e74c3c;color:#fff}.btn.btn-danger:hover{background-color:#c0392b}.availability-results{margin-top:30px}.availability-results h2{font-size:20px;margin-bottom:15px;color:#2c3e50}.location-info{margin-bottom:15px;padding:10px;background-color:#f9f9f9;border-radius:4px}.location-info p{margin-bottom:5px}.location-info p:last-child{margin-bottom:0}.time-slots{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.time-slot{padding:12px 5px;border-radius:4px;text-align:center;flex:0 0 calc(25% - 10px);font-size:18px;font-weight:normal;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:10px}.time-slot.available{background-color:#e8f5e9;border:1px solid #a5d6a7;cursor:pointer}.time-slot.available:hover{background-color:#c8e6c9;transform:translateY(-1px);box-shadow:0 2px 5px rgba(0,0,0,.15)}.time-slot.unavailable{background-color:#ffebee;border:1px solid #ffcdd2;color:#b71c1c;opacity:.7}.reservation-form-container{margin-top:30px;padding:20px;background-color:#f9f9f9;border-radius:8px;border:1px solid #ddd}.reservation-form-container h2{font-size:20px;margin-bottom:15px;color:#2c3e50}.reservation-info{margin-bottom:15px;padding:10px;background-color:#e3f2fd;border:1px solid #b3e5fc;border-radius:4px;font-weight:bold}.time-info{margin-bottom:15px;padding:10px;background-color:#fff8e1;border:1px solid #ffe082;border-radius:4px}.time-info p{margin-bottom:5px;font-size:14px;color:#f57c00}.time-info p:last-child{margin-bottom:0}.hidden{display:none}.my-reservations{margin-top:40px}.my-reservations h2{font-size:20px;margin-bottom:15px;color:#2c3e50}.my-reservations .date-header{background-color:#e3f2fd;color:#1565c0;padding:8px 12px;border-radius:4px;margin-top:20px;margin-bottom:10px;font-size:16px}.reservation-list .reservation-item{padding:15px;margin-bottom:15px;background-color:#f9f9f9;border-radius:8px;border:1px solid #ddd}.reservation-list .reservation-item h3{font-size:18px;margin-bottom:10px;color:#333}.reservation-list .reservation-item p{margin-bottom:8px}.reservation-list .reservation-item .reservation-user{font-style:italic;color:#666}.reservation-list .reservation-item .reservation-actions{margin-top:10px}.reservation-list .reservation-item.my-reservation{background-color:#f0f7ff;border-color:#b3d9ff}.footer{text-align:center;padding:20px 0;color:#7f8c8d;font-size:14px}@media(max-width: 768px){.header{flex-direction:column;align-items:flex-start}.header h1{margin-bottom:10px}.time-slot{flex:0 0 calc(25% - 10px);padding:10px 5px;font-size:16px;font-weight:normal}.calendar td{height:60px}.calendar .calendar-day{min-height:60px;padding:5px}}@media(max-width: 480px){.time-slot{flex:0 0 calc(25% - 8px);padding:8px 3px;font-size:17px;font-weight:normal;margin-bottom:8px}.form-actions{flex-direction:column}.form-actions .btn{width:100%}.month-selector h3{font-size:16px}.calendar th{padding:5px;font-size:12px}.calendar .calendar-day{min-height:50px}.calendar .calendar-day .day-number{font-size:14px}}@media(max-width: 600px){.sp-br{display:block}}.map-link-section{margin-bottom:30px}.map-link-section h2{font-size:20px;margin-bottom:15px;color:#2c3e50}.map-links{display:flex;justify-content:space-around;flex-wrap:wrap;gap:1rem}@media(max-width: 768px){.map-links{flex-direction:column}}