.jpt-container{margin:0 auto}.jpt-overview{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:40px;border-radius:20px;margin-bottom:30px;text-align:center}.jpt-overview h2{margin:0 0 30px 0;font-size:2.5em}.jpt-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:30px}.jpt-stat-card{background:rgb(255 255 255 / .2);backdrop-filter:blur(10px);border-radius:15px;padding:20px;border:1px solid rgb(255 255 255 / .3)}.jpt-stat-number{font-size:2.5em;font-weight:700;margin-bottom:10px}.jpt-stat-label{font-size:1.1em;opacity:.9}.jpt-progress-mini{height:8px;background:rgb(255 255 255 / .3);border-radius:4px;margin-top:10px;overflow:hidden}.jpt-progress-fill{height:100%;background:#fff;transition:width 0.5s ease}.jpt-filters{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:20px}.jpt-category-filter{display:flex;gap:10px;flex-wrap:wrap}.jpt-search{margin-bottom:30px}.jpt-search-input{width:100%;padding:15px 20px;border:2px solid #e0e0e0;border-radius:30px;font-size:16px;transition:all 0.3s}.jpt-search-input:focus{outline:none;border-color:#667eea}.jpt-region-section{margin-bottom:40px}.jpt-region-title{font-size:1.8em;color:#667eea;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #667eea}.jpt-prefecture-box{background:#fff;margin-bottom:20px}.jpt-prefecture-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.jpt-prefecture-title{display:flex;align-items:center;gap:15px}.jpt-prefecture-title h4{margin:0;font-size:1.4em}.jpt-emoji{font-size:2em}.jpt-places-count{color:#666;font-size:.9em}.jpt-prefecture-places{margin-top:15px;padding-top:15px;padding-bottom:20px;border-top:1px solid #eee;border-bottom:1px solid #eee}.jpt-prefecture-places h5{margin:0 0 10px 0;color:#666;font-size:1em}.jpt-places-grid-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.jpt-place-item{display:flex;justify-content:space-between;align-items:center;background:#f9f9f9;padding:12px;border-radius:10px;transition:all 0.3s}.jpt-place-item.visited{background:#e8f5e9}.jpt-place-content{display:flex;align-items:center;gap:12px;flex:1}.jpt-category-icon{font-size:1.5em}.jpt-place-info{flex:1}.jpt-place-info h6{margin:0 0 5px 0;font-size:1em}.jpt-place-info p{margin:0;font-size:.85em;color:#666}.jpt-unesco-mini{display:inline-block;background:gold;color:#333;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:700;margin-top:5px}.jpt-prefecture-cities{margin-top:15px;padding-top:15px;border-top:1px solid #eee}.jpt-prefecture-cities h5{margin:0 0 10px 0;color:#666;font-size:1em}.jpt-cities-list{display:flex;flex-wrap:wrap;gap:10px}.jpt-city-item{display:inline-flex;align-items:center;gap:8px;background:#f9f9f9;padding:12px;border-radius:10px;font-size:.9em}.jpt-city-item.visited{background:#e8f5e9}.jpt-places-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.jpt-place-card{display:flex;justify-content:space-between;align-items:center;background:#f9f9f9;padding:12px;border-radius:10px;transition:all 0.3s}.jpt-place-card.visited{background:#e8f5e9}.jpt-place-card h5{margin:0 0 10px 0;font-size:1.2em;color:#333}.jpt-place-desc{font-size:14px;color:#666;margin-bottom:10px;line-height:1.5}.jpt-place-meta{font-size:13px;color:#888;margin-bottom:15px}.jpt-unesco-badge{position:absolute;top:10px;right:10px;background:gold;color:#333;padding:5px 10px;border-radius:20px;font-size:12px;font-weight:700}.jpt-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.jpt-checkbox-label-mini{display:flex;align-items:center;cursor:pointer}.jpt-checkbox-label-mini input{width:15px;height:15px}.jpt-visited-checkbox{width:15px;height:15px;cursor:pointer}.jpt-place-actions{display:flex;justify-content:space-between;align-items:center;margin-top:15px;border-top:1px solid #eee;padding-top:15px}.jpt-achievements-section{background:#f9f9f9;padding:40px;border-radius:20px;margin-bottom:40px}.jpt-achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px;margin-top:20px}.jpt-achievement{background:#fff;border-radius:12px;padding:20px;text-align:center;transition:all 0.3s;border:2px solid #e0e0e0}.jpt-achievement.unlocked{background:linear-gradient(135deg,#ffd700,#ffed4e);border-color:gold;animation:unlock 0.5s ease}.jpt-achievement.locked{opacity:.5;filter:grayscale(100%)}.jpt-achievement-icon{font-size:3em;margin-bottom:10px}.jpt-achievement-name{font-size:14px;font-weight:700}@keyframes unlock{0%{transform:scale(.8) rotate(0deg)}50%{transform:scale(1.1) rotate(5deg)}100%{transform:scale(1) rotate(0deg)}}.jpt-share-section{text-align:center;margin-top:50px}.jpt-share-buttons{display:flex;justify-content:center;gap:15px;margin-top:20px}.jpt-share-btn{background:#667eea;color:#fff;border:none;padding:12px 24px;border-radius:25px;cursor:pointer;transition:all 0.3s;font-size:16px}.jpt-share-btn:hover{background:#764ba2;transform:translateY(-2px)}.jpt-profile-widget{background:#f5f5f5;padding:15px;border-radius:10px;margin-top:15px}.jpt-profile-stats{display:flex;gap:20px;margin-top:10px;font-size:14px}.jpt-badge{display:inline-block;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;margin-left:10px}.jpt-badge-gold{background:gold;color:#333}.jpt-badge-silver{background:silver;color:#333}.jpt-badge-bronze{background:#cd7f32;color:#fff}.jpt-login-prompt{font-size:18px;opacity:.8}@media (max-width:768px){.jpt-overview{padding:20px}.jpt-overview h2{font-size:1.8em}.jpt-stats-grid{grid-template-columns:repeat(2,1fr)}.jpt-filters{flex-direction:column;align-items:stretch}.jpt-category-filter{justify-content:center}.jpt-places-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.jpt-places-grid-compact{grid-template-columns:1fr}.jpt-prefecture-header{flex-direction:column;align-items:flex-start;gap:10px}.jpt-region-title{font-size:1.5em}}@media (max-width:480px){.jpt-places-grid{grid-template-columns:1fr}.jpt-stats-grid{grid-template-columns:1fr}.jpt-prefecture-title{flex-wrap:wrap}}