*{margin:0;padding:0;box-sizing:border-box}body{font-family:Hiragino Sans,Meiryo,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.app{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}.container{background:#fff;border-radius:30px;padding:40px;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}h1{text-align:center;color:#764ba2;margin-bottom:10px;font-size:2em;text-shadow:2px 2px 4px rgba(0,0,0,.1)}.subtitle{text-align:center;color:#666;margin-bottom:30px;font-size:.9em}.calendar-container{margin-bottom:30px}.month-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 10px}.month-header button{background:#667eea;color:#fff;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.2em;transition:transform .2s}.month-header button:hover{transform:scale(1.1)}.month-label{font-size:1.3em;color:#333;font-weight:700}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:10px}.weekday{text-align:center;font-weight:700;color:#667eea;padding:10px 0}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{aspect-ratio:1;display:flex;justify-content:center;align-items:center;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .3s;font-weight:500;background:#f8f9fa}.day:hover:not(.empty):not(.disabled){background:#e3e7ff;transform:scale(1.05)}.day.selected{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#764ba2;animation:pop .3s ease}.day.empty{cursor:default;background:transparent}.day.disabled{color:#ccc;cursor:not-allowed;background:#f0f0f0}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.selected-dates{margin-bottom:30px;padding:20px;background:#f8f9fa;border-radius:15px;min-height:80px}.selected-dates h3{color:#667eea;margin-bottom:10px;font-size:1.1em}.date-chips{display:flex;flex-wrap:wrap;gap:8px}.date-chip{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 16px;border-radius:20px;font-size:.9em;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.decide-button{width:100%;padding:20px;background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;border:none;border-radius:20px;font-size:1.3em;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 10px 30px #f5576c4d}.decide-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 15px 40px #f5576c66}.decide-button:disabled{opacity:.5;cursor:not-allowed}.roulette-container{display:flex;position:fixed;inset:0;background:#000c;z-index:1000;justify-content:center;align-items:center}.roulette-box{background:#fff;border-radius:30px;padding:40px;max-width:400px;width:90%;text-align:center}.roulette-box h2{color:#764ba2;margin-bottom:20px}.roulette-box p{color:#666;font-size:.9em}.roulette-display{font-size:3em;color:#764ba2;margin:30px 0;min-height:80px;display:flex;justify-content:center;align-items:center;font-weight:700}.roulette-display.spinning{animation:bounce .1s infinite}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.result-container{margin-top:30px;padding:30px;background:linear-gradient(135deg,#ffeaa7,#fdcb6e);border-radius:20px;animation:resultPop .5s ease}@keyframes resultPop{0%{transform:scale(0);opacity:0}80%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.result-title{font-size:1.5em;color:#d63031;margin-bottom:10px;font-weight:700}.result-date{font-size:2em;color:#2d3436;margin-bottom:15px;font-weight:700}.result-reason{font-size:1.1em;color:#636e72;font-style:italic}.reset-button{margin-top:20px;padding:15px 30px;background:#74b9ff;color:#fff;border:none;border-radius:15px;font-size:1.1em;cursor:pointer;transition:all .3s}.reset-button:hover{background:#0984e3;transform:translateY(-2px)}@media (max-width: 480px){.container{padding:20px}h1{font-size:1.5em}.day{font-size:.9em}.decide-button{font-size:1.1em}}
