:root{--bg: #0a0c0f;--panel: #111418;--border: #1e2530;--accent: #f5c842;--need: #ff6b6b;--have: #4ecdc4;--text: #e8e8e8;--muted: #555e6e}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Noto Sans JP,sans-serif;min-height:100vh;padding:24px 16px 48px}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Crect width='1' height='1' fill='%23ffffff08'/%3E%3C/svg%3E");pointer-events:none;z-index:0}.wrap{max-width:680px;margin:0 auto;position:relative;z-index:1}header{text-align:center;margin-bottom:32px}.logo{font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:.3em;color:var(--muted);margin-bottom:8px}h1{font-size:26px;font-weight:700;letter-spacing:.05em}h1 span{color:var(--accent)}.subtitle{font-size:12px;color:var(--muted);margin-top:6px;letter-spacing:.15em}.tabs{display:flex;gap:8px;margin-bottom:20px}.tab{flex:1;padding:10px;border:1px solid var(--border);background:var(--panel);color:var(--muted);font-family:Noto Sans JP,sans-serif;font-size:13px;letter-spacing:.1em;cursor:pointer;transition:all .2s;border-radius:4px}.tab.need.active{border-color:var(--need);color:var(--need);background:#ff6b6b14}.tab.have.active{border-color:var(--have);color:var(--have);background:#4ecdc414}.tab:not(.active):hover{border-color:#333;color:var(--text)}.form-box{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:20px;margin-bottom:24px}.form-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}.form-group{flex:1;min-width:120px;display:flex;flex-direction:column;gap:5px}label{font-size:11px;color:var(--muted);letter-spacing:.12em}input,select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:Noto Sans JP,sans-serif;font-size:14px;padding:8px 10px;border-radius:4px;outline:none;transition:border-color .2s;width:100%}input:focus,select:focus{border-color:var(--accent)}.price-toggle-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.price-chip{padding:5px 12px;border-radius:20px;font-size:12px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;transition:all .18s;white-space:nowrap}.price-chip.active-normal{border-color:var(--accent);color:var(--accent);background:#f5c84214}.price-chip.active-free{border-color:#4ecdc4;color:#4ecdc4;background:#4ecdc414}.price-chip.active-custom{border-color:#a78bfa;color:#a78bfa;background:#a78bfa14}.price-input-wrap{margin-top:8px}.btn-post{width:100%;padding:11px;border:none;border-radius:4px;font-family:Noto Sans JP,sans-serif;font-size:14px;font-weight:700;letter-spacing:.12em;cursor:pointer;transition:opacity .2s,transform .1s}.btn-post:active{transform:scale(.98)}.btn-post:disabled{opacity:.5;cursor:not-allowed}.btn-post.need{background:var(--need);color:#fff}.btn-post.have{background:var(--have);color:#0a0c0f}.section-title{font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:.3em;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:10px}.section-title:after{content:"";flex:1;height:1px;background:var(--border)}.cards{display:flex;flex-direction:column;gap:10px}.card{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:14px 16px;display:flex;align-items:flex-start;gap:14px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.card.done{opacity:.42;background:#0d0f12}.card.done .card-name,.card.done .card-count,.card.done .card-price{text-decoration:line-through;text-decoration-color:#3a3a3a}.done-banner{margin-top:7px;font-size:12px;color:#4ecdc4;font-family:Share Tech Mono,monospace;letter-spacing:.08em}.done-banner:before{content:"✓  クローズ · by "}.card-badge{flex-shrink:0;width:48px;text-align:center;padding:4px 0;border-radius:3px;font-size:11px;font-weight:700;letter-spacing:.1em}.card-badge.need{background:#ff6b6b26;color:var(--need);border:1px solid rgba(255,107,107,.3)}.card-badge.have{background:#4ecdc41f;color:var(--have);border:1px solid rgba(78,205,196,.25)}.card-body{flex:1;min-width:0}.card-top{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;flex-wrap:wrap}.card-name{font-size:14px;font-weight:700}.card-count{font-family:Share Tech Mono,monospace;font-size:13px;color:var(--accent)}.card-price{font-family:Share Tech Mono,monospace;font-size:11px;padding:2px 7px;border-radius:10px;border:1px solid}.card-price.normal{color:var(--accent);border-color:#f5c8424d;background:#f5c8420f}.card-price.free{color:#4ecdc4;border-color:#4ecdc44d;background:#4ecdc40f}.card-price.custom{color:#a78bfa;border-color:#a78bfa4d;background:#a78bfa0f}.card-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0}.btn-deal,.btn-reopen{background:none;border:1px solid var(--border);color:var(--muted);font-family:Noto Sans JP,sans-serif;font-size:11px;padding:4px 8px;border-radius:3px;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-deal:hover{border-color:#4ecdc4;color:#4ecdc4}.btn-reopen{border-color:#555e6e;color:#888}.btn-reopen:hover{border-color:var(--accent);color:var(--accent)}.empty{text-align:center;padding:32px;color:var(--muted);font-size:13px;border:1px dashed var(--border);border-radius:6px;letter-spacing:.08em}.count-badge{display:inline-block;background:var(--border);color:var(--muted);font-family:Share Tech Mono,monospace;font-size:11px;padding:1px 6px;border-radius:10px;margin-left:4px}.error-banner{background:#ff6b6b14;border:1px solid rgba(255,107,107,.3);color:var(--need);font-size:12px;padding:8px 12px;border-radius:4px;margin-bottom:12px}.modal-overlay{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease}.modal{background:#161a20;border:1px solid #2a3340;border-radius:8px;padding:24px;width:320px;max-width:90vw}.modal h3{font-size:15px;margin-bottom:6px}.modal p{font-size:12px;color:var(--muted);margin-bottom:16px;line-height:1.6}.modal input{margin-bottom:14px}.modal-btns{display:flex;gap:8px}.modal-btns button{flex:1;padding:9px;border-radius:4px;font-family:Noto Sans JP,sans-serif;font-size:13px;font-weight:700;cursor:pointer;border:none}.btn-confirm{background:#4ecdc4;color:#0a0c0f}.btn-cancel{background:var(--border);color:var(--muted)}
