body.auth-required .app-shell{visibility:hidden}
.stat-card{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}
.stat-card:hover{border-color:#b7c8b6;box-shadow:0 3px 12px #36594312;transform:translateY(-1px)}
.stat-card:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.game-cover{position:relative;overflow:hidden}
.game-cover img{width:100%;height:100%;object-fit:cover;display:block}
.game-cover>span:not(.cover-symbol){position:absolute;inset:auto 8px 11px;text-align:center}
.game-cover .cover-symbol{z-index:1;position:relative}
.source-label a{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.preview-image{width:52px;height:52px;object-fit:cover;border-radius:5px;float:right;margin:0 0 6px 10px}
.attached-downloads{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.attached-downloads a{font-size:8px;color:var(--green);text-decoration:underline;text-underline-offset:2px}
.community-switch{cursor:default;user-select:none}
.community-switch .community-avatar{font-size:8px;font-family:var(--display);font-weight:800;letter-spacing:-.5px;background:#e9f0e7;color:var(--green-dark)}
.game-cover img{position:relative;z-index:1}
.cover-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:12px;background:linear-gradient(135deg,#e6eee4,#f6f2e7);color:var(--green-dark);font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:0}
.cover-placeholder .cover-symbol{position:static;font-size:26px;color:var(--green)}
.event-detail a,.proposal-meta a{color:var(--green-dark);text-decoration:underline;text-decoration-color:#b9c9b8;text-underline-offset:2px}
.form-error{margin:12px 0 0;padding:10px 12px;border:1px solid #efc7b8;border-radius:7px;background:#fff5f1;color:#9f4931;font-size:11px;line-height:1.45}
.form-error[hidden]{display:none}
.library-search-feedback{margin:12px 0 7px;padding:0 1px;border:0;font-size:10px}
.library-search-feedback.error{color:#a34d36}
.library-search-results{display:grid;gap:8px;max-height:45vh;overflow:auto}
.library-result{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;border:1px solid #e9ece6;border-radius:8px;background:#fff}
.library-result-art{width:48px;height:48px;display:grid;place-items:center;overflow:hidden;border-radius:6px;background:linear-gradient(135deg,#e6eee4,#f6f2e7);color:var(--green);font-size:22px}
.library-result-art img{width:100%;height:100%;object-fit:cover}
.library-result-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.library-result-copy strong{font-size:11px}
.library-result-copy small{font-size:9px;line-height:1.35;color:#818a80;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-result .button{padding:8px 10px;font-size:9px;white-space:nowrap}
.library-result .button:disabled{opacity:.75;cursor:default}
.library-owner-option{margin:12px 0 14px;align-items:flex-start;padding:10px;border:1px solid #e8ece5;border-radius:6px;background:#f8faf6}
.library-owner-option .checkmark{margin-top:1px}
.library-owner-option strong{font-size:9px}
.library-owner-option small{max-width:340px;line-height:1.4}
.bgg-sync-button{width:100%;margin-top:12px}
.bgg-sync-button:disabled{opacity:.5;cursor:not-allowed}
.game-ownership{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;border-top:1px solid #f0f1ed;padding-top:9px;margin-top:10px;font-size:8px;line-height:1.5;color:#69756a}
.game-ownership>span{min-width:0;overflow-wrap:anywhere}
.game-ownership strong{color:#526052}
.owner-source{display:inline-block;padding:1px 4px;margin-left:2px;border-radius:8px;background:#edf3eb;color:#4b7659;font-size:7px}
.owner-actions{display:grid;justify-items:end;gap:4px;flex:none}
.owner-action{flex:none;max-width:110px;border:0;background:transparent;padding:0;color:#4b7659;font-size:8px;font-weight:700;cursor:pointer;text-align:right;white-space:normal}
.owner-action:hover{text-decoration:underline}
.view-toolbar{gap:10px;flex-wrap:wrap}
.view-toolbar .search-box{margin-left:auto}
.view-toolbar [data-action="add-game"]{white-space:nowrap}
@media(max-width:700px){.library-result{grid-template-columns:40px minmax(0,1fr);}.library-result-art{width:40px;height:40px}.library-result .button{grid-column:2;justify-self:start}.view-toolbar .search-box{margin-left:0}}
.modal{overflow:auto}
.manual-game{margin-top:16px;border-top:1px solid #ecefe9;padding-top:12px}
.manual-game summary{cursor:pointer;color:var(--green-dark);font-size:10px;font-weight:700}
.manual-game-form{padding:12px 0 0!important}
.manual-game-form .field{font-size:9px}
.manual-game-form input,.manual-game-form select,.manual-game-form textarea{font-size:11px}
.manual-game-form .button{margin-top:4px}
.address-field{position:relative;z-index:1}
.address-field:focus-within{z-index:8}
.address-field>label{display:block;margin-bottom:7px;color:#687268;font-size:10px}
.address-input-wrap{position:relative}
.address-input-wrap>input{width:100%}
.address-suggestions{position:absolute;z-index:12;top:calc(100% + 5px);left:0;right:0;padding:5px;border:1px solid #dfe5dc;border-radius:8px;background:#fff;box-shadow:0 12px 28px #26372920}
.address-suggestions[hidden]{display:none}
.address-suggestion{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:0;border-radius:5px;background:#fff;text-align:left;cursor:pointer}
.address-suggestion:hover,.address-suggestion.active{background:#f1f5ef}
.address-suggestion>span:first-child{min-width:0;display:flex;flex-direction:column;gap:3px}
.address-suggestion strong{font-size:11px;font-weight:600;color:#27332a}
.address-suggestion small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#727c72}
.address-pin{flex:0 0 auto;color:var(--green);font-size:16px}
.address-attribution{margin:4px 5px 2px;padding-top:6px;border-top:1px solid #edf0eb;text-align:right;font-family:Arial,sans-serif;font-size:11px;font-weight:400;letter-spacing:normal;white-space:nowrap;color:#5e5e5e}
.address-attribution a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.address-field .error{color:#a34d36}
.game-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.game-title-row h3{min-width:0;margin:0 0 7px}
.remove-item-button{border:1px solid #e5e8e2;border-radius:6px;background:#fff;color:#7b847b;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.remove-item-button:hover{border-color:#e4b8a9;background:#fff5f1;color:#a34d36}
.remove-game-button{flex:0 0 auto;width:25px;height:25px;padding:0;font-size:16px;line-height:1}
.remove-proposal-button{align-self:flex-end;padding:7px 9px;font-size:9px}
.remove-item-button:focus-visible,.address-suggestion:focus-visible{outline:2px solid #6b9274;outline-offset:2px}

@media(max-width:760px){
  .app-shell{min-height:100vh;min-height:100dvh;padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .sidebar{position:fixed;z-index:30;inset:auto 0 0;width:auto;height:auto;min-height:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch;padding:4px 6px calc(4px + env(safe-area-inset-bottom));border:0;border-top:1px solid #e8e9e4;background:#fff;box-shadow:0 -5px 18px #202b2412}
  .sidebar>.brand,.sidebar>.group-label{display:none}
  .sidebar .main-nav,.sidebar .sidebar-bottom{display:contents}
  .sidebar .invite-card{display:none}
  .sidebar .nav-item{position:relative;width:auto;min-width:0;height:auto;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 1px;border-radius:7px;font-size:9px;line-height:1.1;text-align:center;white-space:normal}
  .sidebar .nav-item .nav-icon{width:auto;font-size:17px;line-height:18px}
  .sidebar .nav-count{top:2px;right:calc(50% - 20px);min-width:14px;padding:1px 3px;font-size:8px;line-height:1.2}
  .sidebar .profile-button{width:auto;min-width:0;min-height:52px;flex-direction:column;justify-content:center;gap:3px;padding:4px 1px 0;border:0;border-radius:7px;text-align:center}
  .sidebar .profile-button::after{content:"Account";font-size:9px;line-height:1.1;color:#737b73}
  .sidebar .profile-button .avatar{width:22px;height:22px;font-size:7px}
  .sidebar .profile-copy,.sidebar .profile-more{display:none}
  .topbar{position:sticky;top:0;z-index:15}
  .top-actions .icon-button{min-width:40px;min-height:40px;display:grid;place-items:center}
  .view-root{padding-bottom:38px}
  .button,.tab-button,.vote-date,.event-join,.vote-button{min-height:40px;touch-action:manipulation}
  .field input,.field select,.field textarea,.search-box input{font-size:16px}
  .field input,.field select{min-height:44px}
  .field textarea{min-height:72px}
  .view-toolbar{align-items:stretch;gap:8px}
  .view-toolbar>.tabs{max-width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .view-toolbar>.tabs .tab-button{flex:0 0 auto;padding:8px 10px;white-space:nowrap}
  .view-toolbar .search-box{flex:1 1 100%;min-width:0;min-height:44px}
  .view-toolbar .search-box input{width:100%;min-width:0}
  .view-toolbar [data-action="add-game"]{flex:1 1 100%;justify-content:center}
  .event-row{grid-template-columns:42px minmax(0,1fr);gap:6px 9px;align-items:start}
  .event-date{grid-row:1/span 2;width:42px;height:46px}
  .event-main{grid-column:2;min-width:0}
  .event-detail{flex-wrap:wrap;line-height:1.45}
  .event-attendance{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
  .event-avatars{display:none}
  .event-status{white-space:normal}
  .event-join{padding:8px 10px;font-size:9px}
  .proposal-card{grid-template-columns:minmax(0,1fr)}
  .proposal-aside{flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px;min-width:0}
  .vote-button{flex:1 1 100%;padding:9px 11px}
  .calendar-full .view-toolbar{align-items:center}
  .calendar-full .calendar-grid{gap:2px}
  .calendar-full .cal-weekday{overflow:hidden;text-overflow:clip;white-space:nowrap}
  .calendar-full .cal-day{min-width:0;overflow:hidden}
  .member-row{grid-template-columns:minmax(0,1fr) minmax(82px,.65fr) 20px;gap:7px}
  .member-row>:nth-child(3),.member-header>:nth-child(3){display:none}
  .member-person{min-width:0}
  .member-person strong,.member-person small{overflow-wrap:anywhere}
  .modal{max-height:calc(100dvh - 12px)}
  .modal form{padding-bottom:calc(15px + env(safe-area-inset-bottom))}
}

@media(max-width:480px){
  .app-shell{padding-bottom:calc(60px + env(safe-area-inset-bottom))}
  .sidebar{padding-right:3px;padding-left:3px}
  .sidebar .nav-item,.sidebar .profile-button{min-height:50px;font-size:8px}
  .sidebar .nav-item .nav-icon{font-size:16px}
  .view-root{padding-left:12px;padding-right:12px}
  .page-head{gap:8px}
  .page-head>.button{min-width:42px;min-height:42px}
  .page-head p{max-width:230px}
  .mini-calendar .cal-day{height:38px;font-size:10px}
  .event-row{grid-template-columns:38px minmax(0,1fr);padding:11px 3px;gap:6px 8px}
  .event-date{width:38px;height:43px}
  .event-name{white-space:normal;overflow-wrap:anywhere}
  .event-detail{font-size:8px}
  .calendar-full{padding:8px 4px}
  .calendar-full .calendar-grid{gap:1px}
  .calendar-full .cal-weekday{padding:5px 0;font-size:7px}
  .calendar-full .cal-day{height:54px;padding:4px 2px;font-size:9px}
  .day-chip{left:1px;right:1px;top:20px;padding:2px 1px;font-size:6px;white-space:normal;line-height:1.1;max-height:27px}
  .calendar-legend{gap:10px;flex-wrap:wrap;font-size:8px}
  .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .game-info{padding:10px}
  .game-info h3{overflow-wrap:anywhere}
  .game-ownership{flex-direction:column}
  .owner-actions{justify-items:start}
  .owner-action{text-align:left}
  .vote-row{display:grid;grid-template-columns:1fr}
  .vote-date{justify-content:space-between;padding:8px 10px;font-size:9px}
  .roles-panel{grid-template-columns:1fr 1fr;padding:12px}
  .role-item p{font-size:8px}
  .modal{position:fixed;inset:auto 0 0;width:100vw;max-width:none;max-height:calc(100dvh - env(safe-area-inset-top) - 8px);margin:0;border-radius:16px 16px 0 0}
  .modal form{padding:19px 16px calc(15px + env(safe-area-inset-bottom))}
  .modal-head h2{font-size:20px}
  .form-grid{grid-template-columns:1fr}
  .field-wide{grid-column:auto}
  .poll-dates{grid-template-columns:1fr}
  .library-result{grid-template-columns:40px minmax(0,1fr);gap:8px}
  .library-result .button{grid-column:2}
}

@media(max-width:760px) and (display-mode:standalone){
  .topbar{height:calc(57px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}
}

.member-row{grid-template-columns:minmax(160px,1.4fr) minmax(100px,.8fr) minmax(100px,.7fr) 36px}
.member-action-button{justify-self:center;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:#718071;font-size:16px;line-height:1;letter-spacing:1px;cursor:pointer}
.member-action-button:hover,.member-action-button:focus-visible{background:#edf3ec;color:var(--green-dark);outline:0}
.member-actions-dialog-body{padding:23px 25px 20px}
.member-remove-action:hover{border-color:#e4c3b7;background:#fff8f5}
.tab-button:not(.active):hover{background:#f7f8f5;color:var(--ink)}
.tab-button:focus-visible{outline:2px solid #6b9274;outline-offset:2px}
@media(max-width:760px){.member-row{grid-template-columns:minmax(0,1fr) minmax(82px,.65fr) 36px}}
@media(max-width:480px){.member-row{grid-template-columns:minmax(0,1fr) minmax(72px,.65fr) 36px}.member-actions-dialog-body{padding:19px 16px 15px}}

[hidden]{display:none!important}
.telegram-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
#telegram-guide,#telegram-status{font-size:12px;line-height:1.5}
#telegram-connect-link{margin:8px 0}
