.hidden{display:none}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f0f0;color:#3a3a3a;line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}.container{max-width:800px;margin:0 auto;padding:1rem}.landing{text-align:center;padding-top:3rem}.landing h1{font-size:2.5rem;margin-bottom:.25rem;color:#3f51b5}.subtitle{color:#888;margin-bottom:2rem}.admin-link{display:block;text-align:center;margin-top:1.5rem;color:#999;font-size:.9rem;transition:color .2s}.admin-link:hover{color:#666}.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.header-actions{display:flex;gap:.35rem;align-items:center}.header-actions button.btn-secondary{padding:.25rem .55rem;font-size:.85rem;border-radius:6px}.header-actions button.btn-secondary:hover{transform:none;box-shadow:0 1px 2px #7890ae33}.header-actions .lang-toggle:hover{transform:none;box-shadow:0 1px 2px #00000014}.header-actions a{display:inline-block;padding:.5rem 1rem;border-radius:20px;font-size:1rem;background:#90a4ae;color:#fff;text-decoration:none;transition:background .2s,transform .15s}.header-actions a:hover{background:#78909c;transform:scale(1.03)}.card{background:#fff;border-radius:16px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 2px 12px #0000000f,0 1px 3px #0000000a;transition:box-shadow .2s}.card:hover{box-shadow:0 4px 20px #00000014,0 2px 6px #0000000a}h1{font-size:1.5rem;font-weight:800}h2{font-size:1.2rem;margin-bottom:.75rem;font-weight:700}h3{font-size:1.1rem;margin-bottom:.5rem;font-weight:700}input,select{width:100%;padding:.55rem .75rem;border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;margin-bottom:.5rem;transition:border-color .2s,box-shadow .2s;font-family:inherit}input:focus,select:focus{outline:none;border-color:#9575cd;box-shadow:0 0 0 3px #9575cd33}button{padding:.55rem 1.2rem;border:none;border-radius:20px;font-size:1rem;font-weight:600;cursor:pointer;background:#42a5f5;color:#fff;transition:transform .15s,box-shadow .2s,background .2s;font-family:inherit}button:hover{transform:scale(1.03);background:#1e88e5;box-shadow:0 3px 10px #1e88e540}button:active{transform:scale(.98)}.btn-secondary{background:#90a4ae}.btn-secondary:hover{background:#78909c;box-shadow:0 3px 10px #7890ae4d}.btn-small{padding:.25rem .6rem;font-size:.85rem;border-radius:14px}.btn-danger{background:#e57373}.bring-buttons{display:flex;gap:.3rem}.bring-btn{background:#ccc;opacity:.7}.bring-will.active{background:#66bb6a;opacity:1}.bring-wont.active{background:#e57373;opacity:1}.btn-danger:hover{background:#ef5350;box-shadow:0 3px 10px #ef53504d}.btn-undo{background:#ff9800!important;animation:undo-pulse 1s ease-in-out infinite}@keyframes undo-pulse{0%,to{opacity:1}50%{opacity:.7}}.editable-name{cursor:pointer}.edit-icon{font-size:.85rem;opacity:.4;font-weight:400}.editable-name:hover .edit-icon{opacity:.8}.edit-name-input{font-size:inherit;font-weight:inherit;font-family:inherit;border:1px solid #5c6bc0;border-radius:4px;padding:.1em .3em;width:100%}.event-dates{display:flex;align-items:center;gap:.5rem;margin:.3rem 0}.event-dates input[type=date]{font-size:.9rem;padding:.2em .4em;border:1px solid #ddd;border-radius:4px}.event-toggles{display:flex;flex-direction:column;gap:.5rem;margin:.4rem 0}.toggle-switch{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.toggle-switch input{display:none}.toggle-track{position:relative;width:2.2rem;height:1.25rem;background:#ccc;border-radius:.625rem;transition:background .25s;flex-shrink:0}.toggle-track:after{content:"";position:absolute;top:.125rem;left:.125rem;width:1rem;height:1rem;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .25s}.toggle-switch input:checked+.toggle-track{background:#4db6ac}.toggle-switch input:checked+.toggle-track:after{transform:translate(.95rem)}.toggle-label{font-size:.8rem;color:#666;white-space:nowrap}.error{color:#e53935;font-size:.9rem;margin-top:.25rem}.warning{color:#ffa726;font-size:.9rem;margin-top:.25rem}.inline-form{display:flex;gap:.5rem;margin-bottom:.5rem}.inline-form input,.inline-form select{margin-bottom:0}.inline-form button{white-space:nowrap}.inline-form .bgg-link-btn{align-self:center;margin-right:.25rem}.item-list{list-style:none}.item-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f0f0f0}.item-list li:last-child{border-bottom:none}.tabs{display:flex;flex-wrap:wrap;gap:.15rem;margin-bottom:.75rem;align-items:center}.tab{display:inline-flex;align-items:center;gap:.3em;background:transparent;color:#999;border-radius:6px;padding:.3rem .55rem;white-space:nowrap;font-weight:600;font-size:.85rem;transition:background .2s,color .2s}.tab:hover{background:#4db6ac1f;color:#555;transform:none;box-shadow:0 1px 3px #00000014}.tab.active{background:#4db6ac33;color:#00695c}.badge{display:inline-flex;align-items:center;justify-content:center;background:#ffb74d;color:#bf360c;font-size:.8rem;font-weight:700;min-width:1.1em;padding:.1em .45em;border-radius:999px;text-align:center;line-height:1;vertical-align:text-bottom;vertical-align:middle;margin-left:.25em}.event-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.event-actions{display:flex;gap:.25rem;flex-shrink:0}.event-dates{color:#999;font-size:.9rem;margin-bottom:1rem}.pill-phase{display:inline-block;color:#fff;font-size:.75rem;font-weight:700;padding:.15em .6em;border-radius:999px;vertical-align:middle;margin-left:.3rem}.date-row{display:flex;gap:.75rem}.date-row label{flex:1}.phase-help-toggle{font-size:.8rem;font-weight:400}.phase-guide{margin:.3rem 0;font-size:.85rem}.phase-guide-list{list-style:none;margin-top:.4rem;display:flex;flex-direction:column;gap:.3rem}.phase-guide-list li{display:flex;align-items:baseline;gap:.4rem;line-height:1.4}.phase-guide-list .pill-phase{flex-shrink:0}.pill-phase-plan_vote{background:#42a5f5}.pill-phase-plan_post_vote{background:#7e57c2}.pill-phase-running{background:#66bb6a}.pill-phase-finished{background:#bdbdbd}.qr-container{margin-top:.5rem;text-align:center}.qr-url{display:block;color:#1e88e5;text-decoration:underline;text-align:center;word-break:break-all;margin-top:.25rem}.form-group{margin-bottom:.75rem}.form-group label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.25rem}label{display:block;font-size:.9rem;margin-bottom:.5rem}fieldset{border:2px solid #e0e0e0;border-radius:12px;padding:.75rem;margin-bottom:.75rem}legend{font-weight:700;padding:0 .35rem;color:#fb8c00}.dropdown-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.score-preview{font-size:.85rem;font-weight:700;min-width:2.5rem;text-align:right;color:#888;flex-shrink:0}.dropdown-row select{flex:1;margin-bottom:0}.dropdown-row .btn-danger{flex-shrink:0;width:1.6rem;height:1.6rem;padding:0;border-radius:50%;font-size:1.2rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.place-label{font-weight:700;font-size:.9rem;min-width:2rem;text-align:center;flex-shrink:0;color:#9575cd}.tie-label{display:flex!important;align-items:center;gap:.35rem;font-size:.8rem;white-space:nowrap;margin-bottom:0}.tie-label input[type=checkbox]{width:auto;margin-bottom:0}.game-details>.group-block:first-child{margin-top:.4rem}.group-block{border:2px solid #b2dfdb;border-radius:12px;padding:.5rem;margin-bottom:.5rem;background:#fafafa}.group-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;flex-wrap:wrap}.group-header .grp-place-label{font-weight:700;font-size:.9rem;color:#9575cd}.form-row{display:flex;gap:.75rem}.form-row .form-group{flex:1}.group-header .remove-group{margin-left:auto}.overview-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.overview-table th,.overview-table td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid #f0f0f0}.overview-table th{font-weight:700;border-bottom:2px solid #e0e0e0;color:#00695c}.overview-table td:nth-child(2),.overview-table th:nth-child(2),.overview-table td:nth-child(3),.overview-table th:nth-child(3){text-align:center;width:70px}.overview-table .not-played td{color:#bbb}.game-entry{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid #f0f0f0}.game-entry:last-child{border-bottom:none}.game-type-badge{display:inline-block;border-radius:20px;padding:.1rem .5rem;font-size:.7rem;font-weight:700;margin-left:.5rem;vertical-align:middle;text-transform:uppercase;letter-spacing:.03em}.game-type-regular{background:#a5d6a7;color:#1b5e20}.game-type-group{background:#ffcc80;color:#bf360c}.game-type-cooperative{background:#ce93d8;color:#4a148c}.game-date{color:#aaa;margin-left:.5rem}.game-details{color:#777;font-size:.9rem}.game-player{display:flex;justify-content:space-between;padding:1px 0}.game-score{font-weight:700;margin-left:1rem;white-space:nowrap}.scoreboard-tabs{display:flex;gap:.25rem;margin-bottom:.75rem;flex-wrap:wrap}.sb-tab{font-size:.8rem;padding:.3rem .7rem;background:transparent;color:#888;border-radius:8px;cursor:pointer;font-weight:600;transition:background .2s,color .2s}.sb-tab:hover{background:#3f51b51a;color:#3f51b5}.sb-tab.active{background:#3f51b526;color:#1a237e}.scoreboard-table{width:100%;border-collapse:collapse}.scoreboard-table th,.scoreboard-table td{padding:.5rem;text-align:left;border-bottom:1px solid #f0f0f0}.scoreboard-table th{font-weight:700;border-bottom:2px solid #e0e0e0;color:#3f51b5}.scoreboard-table td:first-child,.scoreboard-table th:first-child{width:40px;text-align:center}.scoreboard-table td:last-child,.scoreboard-table th:last-child{text-align:right}.sg-section-title{font-size:1rem;font-weight:700;margin-top:1rem;margin-bottom:.5rem;padding-bottom:.25rem;border-bottom:2px solid #b2dfdb;color:#00695c}.vote-as-row{margin-bottom:.75rem}.vote-as-row select{width:auto;display:inline-block;min-width:150px}.could-bring-item{display:flex!important;align-items:center!important;gap:.5rem}.could-bring-name{flex:1;min-width:0}.vote-buttons{display:flex;gap:.25rem;flex-shrink:0}.vote-btn{font-size:.8rem;padding:.2rem .55rem;background:#f5f5f5;color:#888;border-radius:14px;font-weight:600;transition:background .2s,color .2s,transform .15s}.vote-btn:hover:not(:disabled){background:#e8eaf6;transform:scale(1.05)}.vote-btn:disabled{cursor:default;color:#555}.vote-btn.vote-very-interested.active{background:#a5d6a7;color:#1b5e20}.vote-btn.vote-interested.active{background:#90caf9;color:#0d47a1}.vote-bar{display:flex;width:120px;height:14px;flex-shrink:0;border-radius:7px;overflow:hidden;background:#f0f0f0}.vote-bar-very{background:#e57373;height:100%}.vote-bar-int{background:#64b5f6;height:100%}.vote-bar-none{height:100%}.sg-item{display:flex!important;align-items:center!important;gap:.5rem;flex-wrap:wrap}.sg-item span{flex:1;min-width:0}.sg-actions{display:flex;gap:.25rem;flex-shrink:0}.bgg-header{margin-bottom:.75rem}.bgg-game-item{display:flex!important;align-items:center!important;gap:.5rem}.bgg-game-name{flex:1;min-width:0}.bgg-year{color:#aaa;font-size:.85em}.vote-btn.bgg-will.active{background:#a5d6a7;color:#1b5e20}.vote-btn.bgg-could.active{background:#90caf9;color:#0d47a1}.lang-switcher{position:relative}.lang-toggle{background:#ffffffd9;border:1px solid #ddd;border-radius:6px;padding:.2rem .4rem;font-size:1.1rem;cursor:pointer;line-height:1;transition:background .2s}.lang-toggle:hover{background:#fff}.lang-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:.25rem;background:#fff;border:1px solid #ddd;border-radius:8px;padding:.25rem;box-shadow:0 4px 12px #0000001f;flex-direction:column;gap:.1rem}.lang-dropdown.open{display:flex}.lang-option{background:none;border:1px solid transparent;border-radius:6px;padding:.2rem .4rem;font-size:1.1rem;cursor:pointer;line-height:1;transition:background .15s}.lang-option:hover{background:#0000000f}.lang-option.lang-active{border-color:#4db6ac;background:#4db6ac26}.bgg-link{font-size:.7em;font-weight:700;color:#e57373;text-decoration:none;padding:1px 4px;border:1px solid #e57373;border-radius:3px;vertical-align:middle;margin-left:4px}.bgg-link:hover{background:#e57373;color:#fff}.bgg-name-row{display:flex;align-items:center;gap:8px}.bgg-name-row input{flex:1}.bgg-indicator{white-space:nowrap}.bgg-search-results{list-style:none;padding:0;margin:8px 0;max-height:250px;overflow-y:auto;background:#4db6ac;border-radius:4px}.bgg-search-result{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:4px 10px!important;border-bottom:1px solid rgba(255,255,255,.2);color:#fff}.bgg-search-result:last-child{border-bottom:none}.bgg-search-result .bgg-pick{background:#fff;color:#4db6ac;border-radius:3px;padding:2px 8px;font-size:.8em;font-weight:700}.bgg-search-result .bgg-pick:hover{background:#ffffffd9;box-shadow:none;transform:none}.bgg-year{color:#ffffffb3;font-size:.9em}.bgg-result-name{color:#fff;text-decoration:none;flex:1;min-width:0}.bgg-result-name:hover{color:#fff;text-decoration:underline}.bgg-link-btn{font-size:.7em;color:#888;border:1px solid #ccc;background:none;border-radius:3px;cursor:pointer;padding:1px 4px;vertical-align:middle;margin-left:4px}.bgg-link-btn:hover{color:#e57373;border-color:#e57373;background:none;box-shadow:none;transform:none}.bgg-link-btn--linked{color:#e57373;border-color:#e57373;font-weight:700}.bgg-link-btn--linked:hover{background:#e57373;color:#fff}.shelf-header{display:flex;justify-content:space-between;align-items:flex-start;margin:-.5rem -.5rem 0 0}.bgg-import-btn{font-size:.7em;color:#888;background:none;border:1px solid #ccc;border-radius:3px;padding:1px 4px;cursor:pointer}.bgg-import-btn:hover{color:#e57373;border-color:#e57373;background:none;box-shadow:none;transform:none}.bgg-inline-search{width:100%;margin-top:4px;margin-bottom:4px}.bgg-inline-search .bgg-search-results{margin:4px 0}.score-table{width:100%;border-collapse:collapse;font-size:.9rem;text-align:center}.score-table th,.score-table td{padding:6px 8px;border:1px solid #ddd}.score-table th{background:#f5f5f5;font-weight:600}.score-table td:first-child{text-align:left;background:#f9f9f9}.score-pos{color:#2e7d32}.score-neg{color:#c62828}.score-na{color:#ccc}.score-note{font-size:.85rem;color:#666;margin-top:8px}.table-wrap{overflow-x:auto}
