*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,sans-serif;background:#f5f5f0;color:#1a1a1a}.container{max-width:720px;margin:0 auto;padding:140px 16px 60px}.header{padding:12px 20px;background:linear-gradient(135deg,#1b4d3e,#2d6a4f 30%,#c4622d 75%,#a0401a);margin:0;display:flex;justify-content:space-between;align-items:center;border-radius:16px;position:fixed;top:12px;left:16px;right:16px;z-index:1000}.header h1{font-size:18px;font-weight:700;color:#fff;letter-spacing:.5px;white-space:nowrap}.header-btns{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.header .btn{background:#ffffff26;color:#fff;border-color:#ffffff4d}.header .btn.active{background:#fff;color:#8b1a1a;border-color:#fff}.btn{padding:9px 16px;border:1px solid #ddd;border-radius:8px;font-size:14px;background:#fff;cursor:pointer;color:#444}.btn.primary{background:#1c0a02;color:#fac775;border-color:#1c0a02}.btn.active{background:#378add;color:#fff;border-color:#378add}.tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:1px solid #e0e0d8}.tab{padding:8px 20px;font-size:13px;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:#1a1a1a;border-bottom-color:#1a1a1a;font-weight:500}.search-area{display:flex;gap:8px;margin-bottom:10px}.search-area input,.search-area select{padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:13px;background:#fff;color:#1a1a1a}.search-area input{flex:1}.filter-row{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;align-items:center}.filter-btn{padding:4px 14px;border:1px solid #ddd;border-radius:20px;font-size:12px;background:#fff;color:#666;cursor:pointer}.filter-btn.active-all{background:#eee;color:#333;border-color:#999}.filter-btn.active-deep{background:#633806;color:#fac775;border-color:#633806}.filter-btn.active-light{background:#e6f1fb;color:#0c447c;border-color:#378add}.filter-btn.active-both{background:#e1f5ee;color:#085041;border-color:#1d9e75}.count-label{font-size:12px;color:#999;margin-left:auto}.top-share-x-btn{font-size:12px;color:#fff;background:#000;padding:4px 12px;border-radius:20px;text-decoration:none;white-space:nowrap}.status-bar{font-size:11px;color:#aaa;margin-bottom:10px;min-height:16px}#map{width:100%;height:400px;border-radius:12px;margin-bottom:16px;border:1px solid #e0e0d8;display:none}#map.visible{display:block}.shop-list{display:flex;flex-direction:column;gap:10px}.shop-card{border-radius:12px;border:1px solid #e0e0d8;overflow:hidden;background:#fff}.card-top{display:flex;align-items:stretch}.roast-bar{width:64px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px 0}.roast-bar.deep{background:#633806}.roast-bar.light{background:#ef9f27}.roast-bar.both{background:#e1f5ee}.roast-bar.unknown{background:#f0f0ea}.roast-icon{font-size:20px;line-height:1}.roast-label{font-size:10px;font-weight:500}.roast-bar.deep .roast-label{color:#fac775}.roast-bar.light .roast-label{color:#3b1a08}.roast-bar.both .roast-label{color:#085041}.roast-bar.unknown .roast-label{color:#999}.card-info{flex:1;padding:12px 14px;min-width:0}.shop-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-meta{font-size:11px;color:#888;margin-top:2px;margin-bottom:8px;display:flex;gap:8px;align-items:center}.dist-badge{font-size:10px;background:#f0f0ea;color:#666;padding:1px 6px;border-radius:10px}.bar-wrap{display:flex;align-items:center;gap:8px}.stacked-bar{flex:1;height:4px;border-radius:2px;overflow:hidden;display:flex;background:#eee}.seg-deep{background:#633806;height:100%}.seg-both{background:#1d9e75;height:100%}.seg-light{background:#ef9f27;height:100%}.bar-pcts{font-size:10px;color:#aaa;white-space:nowrap}.card-vote{border-top:1px solid #f0f0e8;padding:10px 14px;display:flex;align-items:center;gap:10px}.vote-label{font-size:11px;color:#888;white-space:nowrap}.vote-btns{display:flex;gap:6px;flex:1}.vote-btn{flex:1;padding:7px 0;border:1px solid #ddd;border-radius:8px;font-size:12px;background:#fff;color:#666;cursor:pointer}.vote-btn:hover:not(:disabled){background:#f5f5f0}.vote-btn.v-deep{background:#633806;color:#fac775;border-color:#633806}.vote-btn.v-light{background:#ef9f27;color:#3b1a08;border-color:#ef9f27}.vote-btn.v-both{background:#e1f5ee;color:#085041;border-color:#1d9e75}.vote-btn:disabled{cursor:default;opacity:.8}.total-votes{font-size:10px;color:#bbb;white-space:nowrap}.website-link{font-size:10px;color:#378add;text-decoration:none}.empty{text-align:center;padding:3rem;color:#aaa;font-size:13px}.expand-btn{font-size:12px;color:#ccc;padding:0 12px;display:flex;align-items:center;cursor:pointer;flex-shrink:0;border:none;background:none}.detail-panel{border-top:1px solid #f0f0e8;padding:14px;display:none}.detail-panel.open{display:block}.detail-label{font-size:11px;color:#aaa;font-weight:500;letter-spacing:.3px;margin-bottom:6px}.detail-links{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.detail-link{font-size:12px;color:#378add;background:#e6f1fb;padding:4px 12px;border-radius:20px;text-decoration:none}.share-x-btn{font-size:12px;color:#fff;background:#000;padding:4px 12px;border-radius:20px;text-decoration:none}.comments-wrap{margin-bottom:10px;display:flex;flex-direction:column;gap:6px}.comment-item{background:#f9f9f6;border-radius:8px;padding:8px 12px}.comment-text{font-size:13px;color:#333;line-height:1.5}.comment-footer{display:flex;justify-content:space-between;align-items:center;margin-top:3px}.comment-date{font-size:10px;color:#bbb}.comment-delete-btn{font-size:10px;color:#e24b4a;background:none;border:none;cursor:pointer;padding:0}.comment-form{display:flex;gap:8px;margin-top:8px}.comment-input{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:13px;background:#fff}.comment-submit{padding:8px 14px;background:#633806;color:#fac775;border:none;border-radius:8px;font-size:12px;cursor:pointer;white-space:nowrap}.no-comments{font-size:12px;color:#bbb;margin-bottom:10px}.report-btn{font-size:10px;color:#bbb;background:none;border:1px solid #eee;border-radius:6px;cursor:pointer;padding:3px 8px;margin-left:auto}.report-btn.reported{color:#aaa;border-color:#eee;cursor:default}.report-btn:hover:not(:disabled){color:#e24b4a;border-color:#e24b4a}.report-modal-overlay{display:none;position:fixed;inset:0;background:#00000073;z-index:2000;align-items:center;justify-content:center}.report-modal-overlay.open{display:flex}.report-modal{background:#fff;border-radius:20px;padding:24px 20px 16px;width:92%;max-width:400px}.report-modal-title{font-size:14px;font-weight:600;color:#333;text-align:center;margin-bottom:18px}.report-type-btns{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.rtype-btn{font-size:14px;padding:12px 16px;border-radius:12px;cursor:pointer;border:1px solid;text-align:left;width:100%}.rtype-not-cafe{color:#791f1f;border-color:#e24b4a;background:#fcebeb}.rtype-wrong-name{color:#0c447c;border-color:#378add;background:#e6f1fb}.rtype-closed{color:#5a3e00;border-color:#c4891a;background:#fff4dc}.rtype-other{color:#2e5a2e;border-color:#4a9e4a;background:#eaf5ea}.report-other-wrap{display:none;gap:6px;margin-top:4px;margin-bottom:4px}.report-other-wrap.open{display:flex}.report-other-wrap input{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:13px}.report-other-wrap button{padding:8px 14px;background:#1c0a02;color:#fac775;border:none;border-radius:8px;font-size:13px;cursor:pointer}.report-modal-cancel{display:block;width:100%;margin-top:12px;font-size:14px;color:#999;background:none;border:none;cursor:pointer;padding:8px;text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes fadeOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.95)}}.request-form{background:#fff;border:1px solid #e0e0d8;border-radius:12px;padding:20px}.request-form h2{font-size:16px;font-weight:500;margin-bottom:16px}.form-row{margin-bottom:12px}.form-row label{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-row input{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:13px}.form-row .hint{font-size:11px;color:#aaa;margin-top:3px}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.submit-btn{width:100%;padding:10px;background:#1c0a02;color:#fac775;border:none;border-radius:8px;font-size:14px;cursor:pointer;margin-top:8px}.success-msg{text-align:center;padding:2rem;color:#085041;font-size:14px}.pref-select{padding:7px 10px;border:1px solid #ddd;border-radius:8px;font-size:12px;background:#fff}.pref-hero{background:linear-gradient(135deg,#1b4d3e,#2d6a4f 30%,#c4622d 75%,#a0401a);color:#fff;padding:32px 20px 24px;text-align:center;margin-bottom:16px}.pref-hero h1{font-size:24px;font-weight:700;margin-bottom:4px}.pref-hero p{font-size:13px;opacity:.85}.back-link{font-size:12px;color:#378add;text-decoration:none;display:inline-block;margin-bottom:16px}.pref-index{max-width:720px;margin:0 auto;padding:24px 16px 60px}.pref-index h1{font-size:22px;font-weight:700;margin-bottom:24px}.region-block{margin-bottom:28px}.region-title{font-size:13px;font-weight:600;color:#888;letter-spacing:.5px;margin-bottom:10px;border-bottom:1px solid #e0e0d8;padding-bottom:6px}.pref-grid{display:flex;flex-wrap:wrap;gap:8px}.pref-link{padding:6px 14px;background:#fff;border:1px solid #e0e0d8;border-radius:20px;font-size:13px;text-decoration:none;color:#333}.pref-link:hover{background:#f5f5f0;border-color:#ccc}
