*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#1a1a2e;color:#e0e0e0;min-height:100vh}.app{max-width:900px;margin:0 auto;padding:1rem}.app-header{text-align:center;padding:1.5rem 0;border-bottom:2px solid #e94560;margin-bottom:2rem}.app-header h1{font-size:1.8rem;color:#e94560}.app-header a{color:inherit;text-decoration:none}input[type=text]{padding:.5rem .75rem;border:1px solid #444;border-radius:4px;background:#16213e;color:#e0e0e0;font-size:1rem}input[type=text]:focus{outline:none;border-color:#e94560}button{padding:.5rem 1rem;border:none;border-radius:4px;background:#e94560;color:#fff;font-size:1rem;cursor:pointer;transition:background .2s}button:hover{background:#c73650}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:#444}button.secondary:hover{background:#555}button.danger{background:#8b0000}button.danger:hover{background:#a00000}.campaign-list{list-style:none}.campaign-list li{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-bottom:.5rem;background:#16213e;border-radius:6px;border-left:4px solid #e94560}.campaign-list li a{color:#e0e0e0;text-decoration:none;font-weight:500;flex:1}.campaign-list li a:hover{color:#e94560}.campaign-list .participant-count{color:#888;font-size:.85rem;margin:0 1rem}.form-row{display:flex;gap:.5rem;margin-top:1rem}.form-row input{flex:1}.name-entry{text-align:center;padding:2rem;background:#16213e;border-radius:8px}.name-entry h2{margin-bottom:1rem;color:#e94560}.calendar{margin-top:1.5rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calendar-header h3{font-size:1.2rem;min-width:200px;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-grid .day-header{text-align:center;font-weight:600;font-size:.8rem;padding:.5rem;color:#888}.calendar-grid .day-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:.9rem;cursor:pointer;position:relative;transition:background .15s;min-height:40px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.calendar-grid .day-cell.empty{cursor:default}.calendar-grid .day-cell.today{outline:2px solid #e94560;outline-offset:-2px}.calendar-grid .day-cell.selected{background:#e94560;color:#fff;font-weight:600}.calendar-grid .day-cell.selected.shared{background:linear-gradient(135deg,#e94560 50%,#4caf50 50%)}.calendar-grid .day-cell.full{background:gold;color:#1a1a2e;font-weight:700;box-shadow:0 0 8px #ffd70080}.calendar-grid .day-cell.full.selected{background:gold;color:#1a1a2e;box-shadow:0 0 8px #ffd70080}.calendar-grid .day-cell:not(.empty):not(.selected):not(.full):hover{background:#2a2a4a}.calendar-grid .day-cell.intensity-0{background:#16213e}.calendar-grid .day-cell.intensity-1{background:#4caf5026}.calendar-grid .day-cell.intensity-2{background:#4caf504d}.calendar-grid .day-cell.intensity-3{background:#4caf5073}.calendar-grid .day-cell.intensity-4{background:#4caf5099}.calendar-grid .day-cell.intensity-5{background:#4caf50cc}.availability-count{position:absolute;bottom:2px;right:4px;font-size:.65rem;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.8)}.legend{margin-top:1.5rem;padding:1rem;background:#16213e;border-radius:8px}.legend h3{margin-bottom:.75rem;color:#e94560}.legend-items{display:flex;flex-wrap:wrap;gap:.5rem}.legend-item{display:flex;align-items:center;gap:.4rem;padding:.25rem .5rem;background:#1a1a2e;border-radius:4px;font-size:.85rem}.legend-color{width:12px;height:12px;border-radius:50%}.legend-dates{color:#888;font-size:.75rem}.viewing-indicator{text-align:center;padding:.4rem .75rem;margin-bottom:.75rem;background:#16213e;border-radius:6px;font-size:.85rem;color:#e0e0e0;border:2px solid #888}.legend-item.legend-clickable{cursor:pointer;transition:background .15s,border-color .15s}.legend-item.legend-clickable:hover{background:#2a2a4a}.legend-item.legend-active{border:2px solid;padding:calc(.25rem - 2px) calc(.5rem - 2px)}.calendar-grid .day-cell.viewing-highlight{font-weight:600}.availability-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000}.availability-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#16213e;border:2px solid #e94560;border-radius:8px;min-width:180px;max-width:280px;box-shadow:0 4px 20px #00000080;z-index:1001}.availability-popup-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-bottom:1px solid #333;font-weight:600;color:#e94560}.popup-close{background:none;border:none;color:#888;font-size:1.2rem;padding:0;cursor:pointer;line-height:1}.popup-close:hover{color:#e94560;background:none}.availability-popup-content{padding:.75rem}.availability-popup-content ul{list-style:none;margin:0;padding:0}.availability-popup-content li{padding:.3rem 0;color:#e0e0e0;font-size:.9rem}.availability-popup-content li:not(:last-child){border-bottom:1px solid #2a2a4a}.no-availability{color:#888;font-style:italic;font-size:.9rem}.loading{text-align:center;padding:2rem;color:#888}.error{text-align:center;padding:1rem;color:#e94560;background:#e945601a;border-radius:6px}@media(max-width:600px){.app{padding:.5rem}.app-header h1{font-size:1.3rem}.calendar-grid .day-cell{font-size:.75rem;min-height:32px}.calendar-grid .day-header{font-size:.7rem;padding:.3rem}.availability-count{font-size:.55rem}.campaign-list li{flex-direction:column;align-items:flex-start;gap:.5rem}}
