*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--app-bg);color:var(--app-text);margin:0;font-family:Arial,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.app__content{max-width:600px;margin:0 auto;padding:20px 16px 100px}.bottom-navigation{background:var(--app-bottom-nav-bg);border-top:1px solid var(--app-border);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-navigation__item{min-width:0;min-height:64px;color:var(--app-hint);background:0 0;border:0;padding:8px 3px;font-size:12px;line-height:1.15}.bottom-navigation__item--active{color:var(--app-accent);font-weight:700}.infinite-scroll-trigger{height:1px}.rated-photos-list{gap:14px;display:grid}.rated-photo-card{border:1px solid var(--app-border);background:var(--app-surface);cursor:pointer;border-radius:16px;overflow:hidden}.rated-photo-card__media{position:relative}.rated-photo-card__image{object-fit:contain;background:var(--app-secondary);width:100%;max-height:420px;display:block}.rated-photo-card__favorite{z-index:2;border:1px solid var(--app-border);background:var(--app-surface);width:40px;height:40px;color:var(--app-muted);cursor:pointer;border-radius:999px;place-items:center;padding:0;font-size:25px;line-height:1;display:grid;position:absolute;top:10px;right:10px;box-shadow:0 2px 8px #00000029}.rated-photo-card__favorite--active{color:var(--app-accent)}.rated-photo-card__favorite:disabled{opacity:.55;cursor:default}.rated-photo-card__favorite:focus-visible{outline:3px solid color-mix(in srgb, var(--app-accent) 28%, transparent);outline-offset:2px}.rated-photo-card__comments{z-index:2;border:1px solid var(--app-border);background:var(--app-surface);min-width:42px;height:36px;color:var(--app-text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:13px;font-weight:700;line-height:1;display:inline-flex;position:absolute;bottom:10px;right:10px;box-shadow:0 2px 8px #00000029}.rated-photo-card__comments--active{border-color:color-mix(in srgb, var(--app-success) 35%, var(--app-border));background:color-mix(in srgb, var(--app-success) 18%, var(--app-surface));color:var(--app-success)}.rated-photo-card__comments:focus-visible{outline:3px solid color-mix(in srgb, var(--app-accent) 28%, transparent);outline-offset:2px}.rated-photo-card__info{gap:7px;padding:12px 14px;font-size:14px;display:grid}.rated-photo-card__info p{margin:0}.rated-photo-card__info p:first-child{color:var(--app-text);font-weight:600}.rated-photo-card__info p:not(:first-child){color:var(--app-muted)}.upload-picker{border:1px dashed var(--app-border-strong);background:var(--app-secondary);min-height:96px;color:var(--app-text);text-align:center;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;padding:18px;font-weight:600;transition:background .12s,border-color .12s;display:flex}.upload-picker:hover{background:var(--app-secondary);border-color:var(--app-hint)}.upload-picker input{display:none}.upload-preview{border:1px solid var(--app-border);background:var(--app-secondary);border-radius:16px;margin-top:18px;margin-bottom:18px;overflow:hidden}.upload-preview img{object-fit:contain;width:100%;max-height:500px;display:block}.upload-success{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;padding:18px}.upload-success p{margin:0 0 14px;line-height:1.45}.upload-success p:last-child{margin-bottom:0}.upload-error{margin-top:16px}.danger-button{background:var(--app-danger);color:var(--app-on-accent);border:0;border-radius:8px;padding:10px 16px}.dialog-backdrop{z-index:1100;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dialog{background:var(--app-surface);width:100%;max-width:440px;color:var(--app-text);border-radius:14px;padding:20px}.dialog__textarea{resize:vertical;width:100%;margin-top:16px;padding:12px;display:block}.dialog__actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.dialog__error{margin-top:10px}.page-notice{border:1px solid var(--app-border);background:var(--app-secondary);border-radius:12px;margin-bottom:16px;padding:12px 14px}.admin-photo-list{gap:16px;display:grid}.admin-photo-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:12px;overflow:hidden}.admin-photo-card__image{object-fit:contain;background:var(--app-secondary);cursor:pointer;width:100%;max-height:400px;display:block}.admin-photo-card__info{gap:6px;padding:12px;display:grid}.admin-photo-card__actions{grid-template-columns:1fr 1fr;gap:10px;padding:0 12px 12px;display:grid}.approve-button{background:var(--app-success);color:var(--app-on-accent);border:0;border-radius:8px;padding:10px 16px}.approve-button:disabled,.danger-button:disabled{opacity:.5;cursor:default}.page-error{border:1px solid var(--app-border);background:var(--app-secondary);border-radius:12px;margin-top:16px;padding:12px 14px}.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:24px;display:grid}@media (width>=600px){.admin-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=900px){.admin-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}}.admin-tabs__item{border:1px solid var(--app-border);background:var(--app-surface);border-radius:8px;min-height:44px;padding:8px}.admin-tabs__item--active{background:var(--app-accent);color:var(--app-on-accent);border-color:var(--app-text)}.admin-deletion-list{gap:16px;display:grid}.admin-deletion-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:12px;overflow:hidden}.admin-deletion-card__image{object-fit:contain;background:var(--app-secondary);cursor:pointer;width:100%;max-height:400px;display:block}.admin-deletion-card__info{gap:6px;padding:12px;display:grid}.admin-deletion-card__comment{background:var(--app-secondary);border-radius:8px;margin-top:6px;padding:10px}.admin-deletion-card__comment p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;margin-bottom:0}.admin-deletion-card__actions{grid-template-columns:1fr 1fr;gap:10px;padding:0 12px 12px;display:grid}.hide-button{background:var(--app-neutral-action);color:var(--app-on-accent);border:0;border-radius:8px;padding:10px 16px}.hide-button:disabled{opacity:.5;cursor:default}.admin-hidden-list{gap:16px;display:grid}.admin-hidden-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:12px;overflow:hidden}.admin-hidden-card__image{object-fit:contain;background:var(--app-secondary);cursor:pointer;width:100%;max-height:400px;display:block}.admin-hidden-card__info{gap:6px;padding:12px;display:grid}.admin-hidden-card__actions{grid-template-columns:1fr 1fr;gap:10px;padding:0 12px 12px;display:grid}.restore-button{background:var(--app-info);color:var(--app-on-accent);border:0;border-radius:8px;padding:10px 16px}.restore-button:disabled{opacity:.5;cursor:default}.admin-photo-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.admin-photo-filters label{gap:6px;display:grid}.admin-photo-filters select{border:1px solid var(--app-border);background:var(--app-surface);border-radius:8px;width:100%;min-height:44px;padding:8px 10px}.admin-all-photo-list{gap:16px;display:grid}.admin-all-photo-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:12px;overflow:hidden}.admin-all-photo-card__image{object-fit:contain;background:var(--app-secondary);cursor:pointer;width:100%;max-height:400px;display:block}.admin-all-photo-card__info{gap:6px;padding:12px;display:grid}.admin-all-photo-card__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px;display:grid}.reject-button{background:var(--app-neutral-action);color:var(--app-on-accent);border:0;border-radius:8px;padding:10px 16px}.reject-button:disabled{opacity:.5;cursor:default}.my-photo-tabs{background:var(--app-secondary);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:20px;padding:4px;display:grid}.my-photo-tabs__item{min-width:0;min-height:42px;color:var(--app-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:8px 5px;font-size:14px;font-weight:500}.my-photo-tabs__item--active{background:var(--app-surface);color:var(--app-text);font-weight:600;box-shadow:0 1px 3px #0000001f}.my-photos-list{gap:14px;display:grid}.my-photo-card{border:1px solid var(--app-border);background:var(--app-surface);cursor:pointer;border-radius:16px;overflow:hidden}.my-photo-card__image{object-fit:contain;background:var(--app-secondary);width:100%;max-height:420px;display:block}.my-photo-card__stats{color:var(--app-muted);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:14px;display:flex}.my-photo-card__stats span:first-child{color:var(--app-text);font-weight:600}.empty-state{border:1px solid var(--app-border);background:var(--app-secondary);color:var(--app-muted);text-align:center;border-radius:16px;margin:24px 0 0;padding:24px 18px;line-height:1.45}.rate-page{width:100%}.rate-photo-card{border:1px solid var(--app-border);background:var(--app-secondary);border-radius:16px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.rate-photo-card__image{object-fit:contain;width:100%;max-width:100%;max-height:60vh;display:block}.rating-panel{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;margin-top:18px;padding:18px}.rating-panel__header h2{margin-top:0;margin-bottom:6px;font-size:20px}.rating-panel__header p{color:var(--app-muted);margin-top:0;margin-bottom:18px;font-size:14px;line-height:1.4}.rating-selection{background:var(--app-secondary);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:14px 16px;display:flex}.rating-selection__label{color:var(--app-muted);font-size:14px}.rating-selection__value{font-size:28px;line-height:1}.rating-control{margin-bottom:22px}.rating-control__header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.rating-control__header span{color:var(--app-muted);font-size:14px}.rating-control__header strong{font-size:18px}.rating-slider{width:100%;accent-color:var(--app-text);margin:0;display:block}.rating-slider:disabled{opacity:.5}.rating-scale{color:var(--app-hint);text-align:center;grid-template-columns:repeat(10,minmax(0,1fr));margin-top:6px;font-size:11px;display:grid}.rating-submit{width:100%}.primary-button{background:var(--app-accent);min-height:48px;color:var(--app-on-accent);border:0;border-radius:10px;padding:11px 18px;font-weight:600}.primary-button:disabled{opacity:.5;cursor:default}.rating-result{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;margin-top:18px;padding:18px}.rating-result__header h2{margin-top:0;margin-bottom:6px;font-size:20px}.rating-result__header p{color:var(--app-muted);margin-top:0;margin-bottom:18px;font-size:14px}.rating-result__your-rating{background:var(--app-secondary);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:14px 16px;display:flex}.rating-result__your-rating span{color:var(--app-muted);font-size:14px}.rating-result__your-rating strong{font-size:28px;line-height:1}.rating-result__community{margin-bottom:20px}.rating-result__community h3{margin-top:0;margin-bottom:10px;font-size:15px}.rating-result__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.rating-result__stat{border:1px solid var(--app-border);border-radius:10px;gap:5px;padding:12px;display:grid}.rating-result__stat span{color:var(--app-muted);font-size:13px}.rating-result__stat strong{font-size:22px}.rating-result .primary-button{width:100%}.rate-loading{text-align:center;color:var(--app-muted)}.rate-loading__photo{aspect-ratio:4/3;background:var(--app-secondary);border-radius:16px;width:100%;margin-bottom:16px}.rate-empty{border:1px solid var(--app-border);text-align:center;border-radius:16px;padding:28px 20px}.rate-empty h2{margin-top:0;margin-bottom:8px}.rate-empty p{color:var(--app-muted);margin-top:0;margin-bottom:20px;line-height:1.4}.rate-page__error{margin-top:16px}.custom-range{margin-bottom:26px}.custom-range__area{padding:32px 12px 34px}.custom-range__track-area{touch-action:none;width:100%;height:8px;position:relative}.custom-range__track{background:var(--app-border);border-radius:999px;height:6px;position:absolute;inset:50% 0 auto;transform:translateY(-50%)}.custom-range__selected{background:var(--app-accent);pointer-events:none;border-radius:999px;height:6px;position:absolute;top:50%;transform:translateY(-50%)}.custom-range__handle{z-index:2;touch-action:none;cursor:grab;background:0 0;border:0;width:44px;height:44px;padding:0;position:absolute}.custom-range__handle:active{cursor:grabbing}.custom-range__handle:disabled{opacity:.5;cursor:default}.custom-range__handle--min{top:-37px;transform:translate(-50%)}.custom-range__handle--max{top:1px;transform:translate(-50%)}.custom-range__handle-dot{border:3px solid var(--app-accent);background:var(--app-surface);border-radius:50%;width:24px;height:24px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 1px 5px #0003}.custom-range__handle--min .custom-range__handle-dot{bottom:0}.custom-range__handle--max .custom-range__handle-dot{top:0}.custom-range__handle-name{color:var(--app-muted);white-space:nowrap;pointer-events:none;font-size:10px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.custom-range__handle--min .custom-range__handle-name{bottom:27px}.custom-range__handle--max .custom-range__handle-name{top:27px}.custom-range__scale{color:var(--app-hint);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:0 2px;font-size:11px;display:flex}.custom-range__handle:focus-visible .custom-range__handle-dot{outline-offset:3px;outline:3px solid #1111112e}.rated-photo-card__my-rating{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.rated-photo-card__my-rating span{color:var(--app-muted);font-size:14px}.rated-photo-card__my-rating strong{color:var(--app-text);font-size:20px}.rated-photo-card__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.rated-photo-card__stats>div{gap:3px;display:grid}.rated-photo-card__stats span{color:var(--app-hint);font-size:12px}.rated-photo-card__stats strong{color:var(--app-text);font-size:16px}.upload-actions{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.upload-actions .primary-button{width:100%}.secondary-button{border:1px solid var(--app-border);background:var(--app-surface);min-height:48px;color:var(--app-text);border-radius:10px;padding:11px 18px;font-weight:600}.secondary-button:disabled{opacity:.5;cursor:default}.upload-success{text-align:center}.upload-success__mark{background:var(--app-secondary);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 14px;font-size:24px;font-weight:700;display:flex}.upload-success h2{margin:0 0 8px}.upload-success .primary-button{width:100%;margin-top:6px}.stats-page{gap:16px;display:grid}.stats-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;padding:18px}.stats-card__header{margin-bottom:18px}.stats-card__header h2{margin:0;font-size:18px}.stats-progress__value{align-items:baseline;margin-bottom:14px;display:flex}.stats-progress__value strong{font-size:36px;line-height:1}.stats-progress__value span{color:var(--app-muted);margin-left:6px;font-size:20px}.stats-progress__track{background:var(--app-track);border-radius:999px;width:100%;height:8px;overflow:hidden}.stats-progress__fill{border-radius:inherit;background:var(--app-accent);height:100%;transition:width .18s}.stats-histogram{--histogram-height:190px;--histogram-label-height:20px;flex-direction:column;gap:8px;width:100%;min-width:0;display:flex}.stats-histogram__readout{min-height:20px;color:var(--app-muted);overflow-wrap:anywhere;font-size:12px;line-height:1.4}.stats-histogram__chart{height:var(--histogram-height);grid-template-columns:max-content minmax(0,1fr);gap:8px;min-height:0;margin-top:6px;display:grid}.stats-histogram__y-axis{min-width:1ch;margin-bottom:var(--histogram-label-height);color:var(--app-muted);font-variant-numeric:tabular-nums;font-size:10px;position:relative}.stats-histogram__y-axis span{white-space:nowrap;line-height:1;position:absolute;right:0;transform:translateY(50%)}.stats-histogram__plot{grid-template-rows:minmax(0,1fr);gap:3px;min-width:0;min-height:0;display:grid;position:relative}.stats-histogram__grid{inset:0 0 var(--histogram-label-height);pointer-events:none;position:absolute}.stats-histogram__grid span{border-top:1px solid var(--app-border);position:absolute;left:0;right:0}.stats-histogram__column{min-width:0;min-height:0;position:relative}.stats-histogram__bar-area{inset:0 0 var(--histogram-label-height);position:absolute}.stats-histogram__bar{background:var(--app-accent);pointer-events:none;border-radius:4px 4px 0 0;width:100%;max-width:24px;display:block;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.stats-histogram .stats-histogram__hit-area,.stats-histogram .stats-histogram__hit-area:hover,.stats-histogram .stats-histogram__hit-area:active,.stats-histogram .stats-histogram__hit-area:focus{appearance:none;width:100%;height:100%;box-shadow:none;-webkit-tap-highlight-color:transparent;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:0;outline:none;padding:0;position:absolute;inset:0;transform:none}.stats-histogram .stats-histogram__hit-area:focus-visible{outline:none}.stats-histogram__label{height:var(--histogram-label-height);min-width:0;color:var(--app-hint);white-space:nowrap;justify-content:center;align-items:center;font-size:10px;line-height:1;display:flex;position:absolute;bottom:0;left:0;right:0}.stats-histogram__column:nth-child(2) .stats-histogram__label{justify-content:flex-start}.stats-histogram__column:last-child .stats-histogram__label{justify-content:flex-end}.stats-histogram__caption{text-align:center;color:var(--app-muted);font-size:11px}.stats-card__description{color:var(--app-muted);margin:0 0 16px;font-size:13px;line-height:1.5}.stats-upload-list{display:grid}.stats-upload-row{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.stats-upload-row:last-child{border-bottom:0}.stats-upload-row span{color:var(--app-muted);font-size:14px}.stats-upload-row strong{font-size:20px}.stats-loading{color:var(--app-muted);text-align:center;padding:24px 0}.admin-overview{gap:16px;margin-top:16px;display:grid}.admin-overview-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;padding:18px}.admin-overview-card__title{margin:0 0 18px;font-size:18px;line-height:1.2}.admin-overview-main-value{font-size:36px;font-weight:700;line-height:1}.admin-overview-main-label{color:var(--app-muted);margin-top:7px;font-size:14px}.admin-overview-list{display:grid}.admin-overview-row{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.admin-overview-row:last-child{border-bottom:0}.admin-overview-row span{color:var(--app-muted);font-size:14px}.admin-overview-row strong{flex-shrink:0;font-size:20px}.admin-coverage__value{margin-bottom:14px;font-size:36px;font-weight:700;line-height:1}.admin-coverage__track{background:var(--app-track);border-radius:999px;width:100%;height:8px;overflow:hidden}.admin-coverage__fill{border-radius:inherit;background:var(--app-accent);height:100%;transition:width .18s}.admin-coverage__description{color:var(--app-hint);margin:12px 0 0;font-size:12px;line-height:1.4}.admin-overview__loading{color:var(--app-muted);text-align:center;padding:28px 0}.photo-rating-stats__histogram{margin-top:22px}.photo-rating-stats__loading{color:var(--app-muted);text-align:center;margin:0;padding:20px 0}.rated-scroll-top{z-index:900;right:16px;bottom:calc(76px + var(--app-tg-safe-bottom));border:1px solid var(--app-border);background:var(--app-accent);min-height:40px;color:var(--app-on-accent);border-radius:999px;padding:9px 12px;font-size:12px;font-weight:750;position:fixed;box-shadow:0 6px 20px #0000002e}.rated-scroll-top:focus-visible{outline:3px solid color-mix(in srgb, var(--app-accent) 28%, transparent);outline-offset:2px}.rating-result-tabs{background:var(--app-secondary);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:4px;display:grid}.rating-result-tabs__item{min-width:0;min-height:38px;color:var(--app-muted);background:0 0;border:0;border-radius:8px;padding:7px 8px;font-size:13px;font-weight:600}.rating-result-tabs__item--active{background:var(--app-surface);color:var(--app-text);box-shadow:0 1px 3px #0000001f}.rating-result__tab-content{min-height:0}.comment-composer{gap:8px;display:grid}.comment-composer__input{resize:vertical;border:1px solid var(--app-border);background:var(--app-bg);width:100%;min-height:92px;color:var(--app-text);font:inherit;border-radius:10px;padding:11px 12px;line-height:1.4;display:block}.comment-composer__input:focus{outline:2px solid color-mix(in srgb, var(--app-accent) 30%, transparent);outline-offset:1px}.comment-composer__footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.comment-composer__counter{color:var(--app-hint);font-size:11px}.comment-composer__send{background:var(--app-accent);min-height:38px;color:var(--app-on-accent);border:0;border-radius:9px;padding:7px 14px;font-weight:650}.comment-composer__send:disabled{opacity:.45}.comment-composer__success,.comment-composer__error{margin:0;font-size:12px}.comment-composer__success{color:var(--app-success)}.comment-composer__error{color:var(--app-danger)}.comments-sheet-backdrop{z-index:1150;height:var(--app-modal-viewport-height,100dvh);padding-top:var(--app-modal-viewport-top,0px);background:#00000094;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.comments-sheet{background:var(--app-surface);width:min(100%,620px);max-height:min(86dvh,760px);color:var(--app-text);border-radius:18px 18px 0 0;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden;box-shadow:0 -10px 40px #00000038}.comments-sheet__header{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;display:flex}.comments-sheet__header>div{align-items:baseline;gap:8px;display:flex}.comments-sheet__header h2{margin:0;font-size:18px}.comments-sheet__header span{color:var(--app-hint);font-size:13px}.comments-sheet__close{background:var(--app-secondary);width:38px;height:38px;color:var(--app-text);border:0;border-radius:999px;place-items:center;padding:0;font-size:25px;line-height:1;display:grid}.comments-sheet__list{overscroll-behavior:contain;min-height:0;padding:4px 14px 10px;overflow-y:auto}.comments-sheet__empty{color:var(--app-muted);text-align:center;margin:0;padding:28px 8px}.photo-comment{border-bottom:1px solid var(--app-border);grid-template-columns:42px minmax(0,1fr);gap:10px;padding:12px 0;display:grid}.comment-avatar{object-fit:cover;background:var(--app-secondary);border-radius:999px;width:42px;height:42px;display:block}.comment-avatar--fallback{color:var(--app-muted);place-items:center;font-size:13px;font-weight:750;display:grid}.photo-comment__body{min-width:0}.photo-comment__meta{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.photo-comment__meta-actions{flex:none;align-items:center;gap:5px;display:inline-flex}.photo-comment__delete{width:28px;height:28px;color:var(--app-danger);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;font-size:14px;line-height:1;display:grid}.photo-comment__delete:hover{background:var(--app-danger-soft)}.photo-comment__delete:disabled{opacity:.45;cursor:default}.photo-comment__delete:focus-visible{outline:2px solid color-mix(in srgb, var(--app-danger) 32%, transparent);outline-offset:1px}.photo-comment__meta strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.photo-comment__meta time{color:var(--app-hint);white-space:nowrap;flex:none;font-size:10px}.photo-comment__body p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.4}.comments-sheet__more{border:1px solid var(--app-border);background:var(--app-secondary);width:100%;min-height:40px;color:var(--app-text);border-radius:9px;margin-top:10px;display:block}.comments-sheet__inline-error{color:var(--app-danger);text-align:center;margin:10px 0 0;font-size:12px}.comments-sheet__delete-error{border-top:1px solid var(--app-border);background:var(--app-danger-soft);color:var(--app-danger-text);text-align:center;margin:0;padding:7px 14px;font-size:12px}.comments-sheet__composer{padding:10px 14px calc(10px + var(--app-tg-safe-bottom));border-top:1px solid var(--app-border);background:var(--app-surface)}@media (width>=700px){.comments-sheet-backdrop{align-items:center;padding:24px}.comments-sheet{border-radius:18px}}.photo-viewer{z-index:1000;background:#000000e6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.photo-viewer__close{z-index:1002;width:44px;height:44px;color:var(--app-on-accent);cursor:pointer;background:#464646e6;border:0;border-radius:50%;padding:0;font-size:28px;line-height:1;position:fixed;top:16px;right:16px}.photo-viewer--simple .photo-viewer__content{background:var(--app-surface);border-radius:12px;flex-direction:column;width:fit-content;max-width:calc(100vw - 48px);max-height:calc(100dvh - 48px);display:flex;overflow:hidden}.photo-viewer--simple .photo-viewer__image{object-fit:contain;background:var(--app-accent);width:auto;max-width:calc(100vw - 48px);height:auto;max-height:calc(100dvh - 120px);display:block}.photo-viewer--simple .photo-viewer__actions{box-sizing:border-box;background:var(--app-surface);flex-wrap:wrap;gap:12px;width:100%;padding:16px;display:flex}.photo-viewer--with-details .photo-viewer__content{background:var(--app-surface);border-radius:12px;grid-template-columns:minmax(0,1.5fr) minmax(360px,.8fr);width:min(100%,1200px);max-height:calc(100dvh - 48px);display:grid;overflow:hidden}.photo-viewer--with-details .photo-viewer__image{object-fit:contain;background:var(--app-accent);width:100%;min-width:0;height:100%;min-height:0;max-height:calc(100dvh - 48px);display:block}.photo-viewer--with-details .photo-viewer__details{box-sizing:border-box;background:var(--app-surface);flex-direction:column;justify-content:center;min-width:0;padding:24px;display:flex}.photo-viewer--with-details .photo-viewer__actions{box-sizing:border-box;background:var(--app-surface);flex-wrap:wrap;grid-column:2;gap:12px;width:100%;padding:0 24px 24px;display:flex}@media (width<=700px){.photo-viewer{padding:12px}.photo-viewer--simple .photo-viewer__content{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.photo-viewer--simple .photo-viewer__image{max-width:calc(100vw - 24px);max-height:calc(100dvh - 100px)}.photo-viewer--with-details .photo-viewer__content{width:100%;max-height:calc(100dvh - 24px);display:block}.photo-viewer--with-details .photo-viewer__image{object-fit:contain;width:100%;height:auto;max-height:42dvh}.photo-viewer--with-details .photo-viewer__details{padding:14px 16px}.photo-viewer--with-details .photo-viewer__actions{padding:0 16px 16px}.photo-viewer--with-details .stats-histogram{--histogram-height:126px;--histogram-label-height:16px}.photo-viewer--with-details .stats-histogram__readout{font-size:11px}.photo-viewer--with-details .photo-rating-stats__histogram{margin-top:12px}}.stats-agreement__value{margin-bottom:14px;font-size:36px;font-weight:700;line-height:1}.stats-agreement__track{background:var(--app-track);border-radius:999px;width:100%;height:8px;overflow:hidden}.stats-agreement__fill{border-radius:inherit;background:var(--app-accent);height:100%;transition:width .18s}.stats-agreement__description{color:var(--app-muted);margin:14px 0 0;font-size:14px;line-height:1.4}.stats-agreement__sample{color:var(--app-hint);margin:8px 0 0;font-size:12px;line-height:1.4}.stats-agreement__empty strong{font-size:18px}.stats-agreement__empty p{color:var(--app-hint);margin:8px 0 0;font-size:14px;line-height:1.4}.stats-similarity__list{display:grid}.stats-similarity__row{border-bottom:1px solid var(--app-border);align-items:flex-start;gap:14px;padding:14px 0;display:flex}.stats-similarity__row:first-child{padding-top:0}.stats-similarity__row:last-child{border-bottom:0;padding-bottom:0}.stats-similarity__rank{width:30px;color:var(--app-hint);flex-shrink:0;padding-top:3px;font-size:13px;font-weight:600}.stats-similarity__info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.stats-similarity__top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.stats-similarity__name{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.stats-similarity__percent{flex-shrink:0;font-size:22px}.stats-similarity__info span{color:var(--app-hint);font-size:12px;line-height:1.35}.stats-similarity__info span strong{color:var(--app-muted);font-size:inherit}.stats-similarity__empty strong{font-size:18px}.stats-similarity__empty p{color:var(--app-hint);margin:8px 0 0;font-size:14px;line-height:1.4}.admin-balance{margin-top:22px}.admin-balance__title{margin:0 0 14px;font-size:14px;font-weight:600}.admin-balance__histogram{gap:10px;display:grid}.admin-balance__row{grid-template-columns:42px minmax(0,1fr) 30px;align-items:center;gap:10px;display:grid}.admin-balance__label{color:var(--app-muted);font-size:12px}.admin-balance__track{background:var(--app-track);border-radius:999px;height:10px;overflow:hidden}.admin-balance__fill{border-radius:inherit;background:var(--app-accent);height:100%;transition:width .18s}.admin-balance__count{color:var(--app-muted);text-align:right;font-size:12px}.admin-activity__header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.admin-activity__header .admin-overview-card__title{margin:0}.admin-activity__periods{background:var(--app-secondary);border-radius:10px;gap:5px;padding:3px;display:flex}.admin-activity__period{min-width:42px;min-height:32px;color:var(--app-muted);background:0 0;border:0;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:600}.admin-activity__period--active{background:var(--app-surface);color:var(--app-text);box-shadow:0 1px 3px #0000001f}.admin-activity__charts{gap:22px;display:grid}.admin-activity-chart{min-width:0}.admin-activity-chart__header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:9px;display:flex}.admin-activity-chart__header span{color:var(--app-muted);font-size:14px}.admin-activity-chart__header strong{font-size:20px}.admin-activity-chart__bars{border-bottom:1px solid var(--app-border);align-items:end;gap:2px;height:92px;padding-top:4px;display:grid}.admin-activity-chart__bar-slot{justify-content:center;align-items:flex-end;min-width:0;height:100%;display:flex}.admin-activity-chart__bar{background:var(--app-accent);border-radius:3px 3px 0 0;width:100%;max-width:14px;min-height:0;transition:height .18s}.admin-activity-chart__axis{color:var(--app-hint);justify-content:space-between;gap:12px;margin-top:6px;font-size:10px;display:flex}.admin-activity__description{color:var(--app-hint);margin:18px 0 0;font-size:12px;line-height:1.4}.admin-activity__state{color:var(--app-muted);text-align:center;padding:22px 0;font-size:14px}.admin-activity__state--error{color:var(--app-danger)}@media (width<=420px){.admin-activity__header{flex-direction:column;align-items:flex-start}.admin-activity__periods{width:100%}.admin-activity__period{flex:1}}.rated-filter-tabs{background:var(--app-secondary);border-radius:12px;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:4px;display:grid}.rated-filter-tabs__item{min-width:0;min-height:42px;color:var(--app-muted);background:0 0;border:0;border-radius:9px;padding:8px 4px;font-size:14px;font-weight:500}.rated-sort-row{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:20px;display:flex}.rated-sort-row__label{color:var(--app-muted);font-size:13px;font-weight:500}.rated-sort-tabs{background:var(--app-secondary);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;display:inline-grid}.rated-sort-tabs__item{min-height:34px;color:var(--app-muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:500}.rated-sort-tabs__item--active{background:var(--app-surface);color:var(--app-text);font-weight:600;box-shadow:0 1px 3px #0000001f}.rated-favorite-error{margin-top:-10px;margin-bottom:14px}@media (width<=420px){.rated-filter-tabs__item{font-size:12px}.rated-sort-row{justify-content:space-between;gap:6px}.rated-sort-tabs{flex:1}.rated-sort-tabs__item{padding-left:6px;padding-right:6px;font-size:12px}.rated-photo-card__favorite{width:38px;height:38px;font-size:23px}}.rated-filter-tabs__item--active{background:var(--app-surface);color:var(--app-text);font-weight:600;box-shadow:0 1px 3px #0000001f}.admin-users{gap:16px;display:grid}.admin-users__search{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.admin-users__search input{border:1px solid var(--app-border);background:var(--app-surface);width:100%;min-width:0;min-height:48px;color:var(--app-text);border-radius:10px;padding:10px 12px}.admin-users__presence-filter{background:var(--app-secondary);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;display:grid}.admin-users__presence-filter-button{min-height:38px;color:var(--app-muted);font:inherit;background:0 0;border:0;border-radius:9px;padding:7px 12px;font-size:13px;font-weight:600}.admin-users__presence-filter-button--active{background:var(--app-surface);color:var(--app-text);box-shadow:0 1px 3px #0000001a}.admin-users__presence-filter-button:disabled{opacity:.6}.admin-users__list{gap:14px;display:grid}.admin-user-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;padding:16px}.admin-user-card__header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.admin-user-card__name{font-size:17px;line-height:1.25;display:block}.admin-user-card__username{color:var(--app-hint);margin-top:4px;font-size:13px}.admin-user-card__presence{color:var(--app-hint);align-items:center;gap:6px;margin-top:7px;font-size:12px;line-height:1.3;display:flex}.admin-user-card__presence-dot{background:var(--app-hint);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.admin-user-card__presence--online{color:var(--app-success);font-weight:600}.admin-user-card__presence--online .admin-user-card__presence-dot{background:var(--app-success)}.admin-user-card__status{border-radius:999px;flex-shrink:0;padding:5px 8px;font-size:12px;font-weight:600}.admin-user-card__status--active{background:var(--app-success-soft);color:var(--app-success)}.admin-user-card__status--banned{background:var(--app-danger-soft);color:var(--app-danger)}.admin-user-card__status--admin{background:var(--app-secondary);color:var(--app-muted)}.admin-user-card__meta{justify-content:space-between;align-items:center;gap:12px;min-height:32px;display:flex}.admin-user-card__meta span{color:var(--app-hint);font-size:13px}.admin-user-card__meta strong{overflow-wrap:anywhere;font-size:13px}.admin-user-card__ban-info{background:var(--app-secondary);border-radius:10px;margin-top:12px;padding:12px}.admin-user-card__ban-info strong{font-size:13px}.admin-user-card__ban-info p{color:var(--app-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0;font-size:13px;line-height:1.4}.admin-user-card__actions{margin-top:14px;display:grid}.admin-user-card__actions button,.admin-users__load-more{width:100%}@media (width<=480px){.admin-users__search{grid-template-columns:1fr}}@media (width>=900px){.admin-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}.admin-user-card__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-user-delete-warning{border:1px solid var(--app-danger-border);background:var(--app-danger-soft);color:var(--app-danger-text);border-radius:10px;margin:14px 0;padding:12px 14px;font-size:13px;line-height:1.45}.admin-user-delete-warning p{margin:0 0 8px;font-weight:700}.admin-user-delete-warning ul{margin:0;padding-left:20px}.admin-user-delete-confirmation{gap:7px;margin-top:14px;display:grid}.admin-user-delete-confirmation span{color:var(--app-muted);font-size:13px;font-weight:600}.admin-user-delete-confirmation input{border:1px solid var(--app-border);background:var(--app-surface);width:100%;min-height:44px;color:var(--app-text);border-radius:9px;padding:9px 11px}@media (width<=480px){.admin-user-card__actions{grid-template-columns:1fr}}.admin-rating-tool{border:1px solid var(--app-border);background:var(--app-secondary);border-radius:16px;padding:16px}.admin-rating-tool__header h2{margin:0;font-size:17px}.admin-rating-tool__header p{color:var(--app-muted);margin:6px 0 0;font-size:13px;line-height:1.4}.admin-rating-tool__form{grid-template-columns:minmax(0,1fr) minmax(120px,.45fr) auto;align-items:end;gap:10px;margin-top:14px;display:grid}.admin-rating-tool__form label{gap:6px;display:grid}.admin-rating-tool__form label>span{color:var(--app-muted);font-size:12px;font-weight:600}.admin-rating-tool__form input{border:1px solid var(--app-border);background:var(--app-surface);width:100%;min-width:0;min-height:44px;color:var(--app-text);border-radius:9px;padding:9px 11px}.admin-rating-tool__result{border:1px solid var(--app-border);background:var(--app-surface);border-radius:12px;margin-top:14px;padding:14px}.admin-rating-tool__result-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px;display:flex}.admin-rating-tool__result-header>div{min-width:0}.admin-rating-tool__result-header>div>strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;display:block;overflow:hidden}.admin-rating-tool__result-header>div>span{color:var(--app-hint);margin-top:3px;font-size:12px;display:block}.admin-rating-tool__rating{flex-shrink:0;font-size:24px;line-height:1}.admin-rating-tool__meta{justify-content:space-between;align-items:center;gap:12px;min-height:30px;display:flex}.admin-rating-tool__meta span{color:var(--app-hint);font-size:12px}.admin-rating-tool__meta strong{text-align:right;font-size:12px}.admin-rating-tool__remove{width:100%;margin-top:12px}@media (width<=600px){.admin-rating-tool__form{grid-template-columns:1fr}}.stats-top100-open{width:100%}.stats-top100{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;padding:16px;scroll-margin-top:12px}.stats-top100__header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.stats-top100__header h2{margin:0 0 4px;font-size:20px}.stats-top100__header p{color:var(--app-muted);margin:0;font-size:12px;line-height:1.35}.stats-top100__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.stats-top100-card{border:1px solid var(--app-border);background:var(--app-secondary);min-width:0;color:var(--app-text);text-align:left;border-radius:12px;padding:0;overflow:hidden}.stats-top100-card__photo{aspect-ratio:1;background:var(--app-track);width:100%;position:relative;overflow:hidden}.stats-top100-card__image{object-fit:contain;width:100%;height:100%;display:block}.stats-top100-card__rank{color:#fff;background:#000000ad;border-radius:999px;padding:5px 7px;font-size:12px;line-height:1;position:absolute;top:7px;left:7px}.stats-top100-card__meta{justify-content:space-between;align-items:baseline;gap:6px;padding:9px 10px;display:flex}.stats-top100-card__meta strong{font-size:18px}.stats-top100-card__meta span{color:var(--app-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.stats-top100__loading,.stats-top100__empty,.stats-top100__loading-more,.stats-top100__end{color:var(--app-muted);text-align:center;padding:18px 8px;font-size:13px}.stats-top100__sentinel{height:1px}.stats-top100__inline-error{border:1px solid var(--app-border);color:var(--app-danger);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:10px;font-size:12px;display:flex}.stats-top100__inline-error button{color:var(--app-accent);background:0 0;border:0;font-weight:700}.stats-top100__floating-back{z-index:950;right:16px;bottom:calc(76px + var(--app-tg-safe-bottom));border:1px solid var(--app-border);background:var(--app-accent);min-height:40px;color:var(--app-on-accent);border-radius:999px;padding:9px 12px;font-size:12px;font-weight:750;position:fixed;box-shadow:0 6px 20px #0000002e}.stats-top100-viewer{gap:4px;display:grid}.stats-top100-viewer strong{font-size:18px}.stats-top100-viewer span{color:var(--app-muted);font-size:13px}.admin-stickers{gap:14px;display:grid}.admin-stickers__panel{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;gap:14px;padding:16px;display:grid}.admin-stickers__heading,.admin-stickers__selected-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-stickers__heading h2,.admin-stickers__selected-title h3{margin:0}.admin-stickers__heading p{max-width:580px;color:var(--app-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.admin-stickers__create,.admin-stickers__user-add,.admin-stickers__path-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.admin-stickers input,.admin-stickers textarea{border:1px solid var(--app-border);background:var(--app-bg);width:100%;min-width:0;color:var(--app-text);font:inherit;border-radius:10px;padding:11px 12px}.admin-stickers textarea{resize:vertical}.admin-sticker-folders{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.admin-sticker-folder{border:1px solid var(--app-border);background:var(--app-bg);min-width:0;color:var(--app-text);text-align:left;border-radius:12px;gap:4px;padding:12px;display:grid}.admin-sticker-folder--active{border-color:var(--app-accent);background:color-mix(in srgb, var(--app-accent) 8%, var(--app-surface))}.admin-sticker-folder span{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.admin-sticker-folder small,.admin-stickers__field small,.admin-stickers__hint{color:var(--app-muted);font-size:12px;line-height:1.4}.admin-stickers__default-badge{background:var(--app-secondary);color:var(--app-text);border-radius:999px;margin-top:6px;padding:3px 7px;font-size:11px;font-weight:700;display:inline-flex}.admin-stickers__field{gap:7px;display:grid}.admin-stickers__field>label{font-size:13px;font-weight:700}.admin-stickers__path-row code{background:var(--app-bg);min-width:0;color:var(--app-muted);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;padding:10px;font-size:11px;overflow:hidden}.admin-stickers__field-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-stickers__field-actions span{color:var(--app-muted);font-size:11px}.admin-stickers__users{gap:7px;display:grid}.admin-stickers__user{border-top:1px solid var(--app-border);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.admin-stickers__user>div{gap:2px;min-width:0;display:grid}.admin-stickers__user strong,.admin-stickers__user span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-stickers__user span{color:var(--app-muted);font-size:12px}@media (width<=560px){.admin-sticker-folders{grid-template-columns:1fr}.admin-stickers__heading{flex-direction:column;align-items:stretch}.admin-stickers__create,.admin-stickers__user-add,.admin-stickers__path-row{grid-template-columns:1fr}}.admin-broadcast{gap:16px;display:grid}.admin-broadcast__panel{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;padding:16px}.admin-broadcast__header h2,.admin-broadcast__job-header h3{margin:0}.admin-broadcast__header h2{font-size:18px}.admin-broadcast__header p{color:var(--app-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.admin-broadcast__message{gap:7px;margin-top:18px;display:grid}.admin-broadcast__message>span{font-size:13px;font-weight:700}.admin-broadcast__message textarea{resize:vertical;border:1px solid var(--app-border);background:var(--app-surface);width:100%;min-height:150px;color:var(--app-text);font:inherit;border-radius:12px;padding:12px;line-height:1.45}.admin-broadcast__message small{color:var(--app-hint);justify-self:end;font-size:12px}.admin-broadcast__filters{gap:10px;margin-top:16px;display:grid}.admin-broadcast__check{border:1px solid var(--app-border);background:var(--app-secondary);cursor:pointer;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:11px;padding:12px;display:grid}.admin-broadcast__check input{width:18px;height:18px;margin:2px 0 0}.admin-broadcast__check>span{gap:4px;display:grid}.admin-broadcast__check strong{font-size:14px}.admin-broadcast__check small{color:var(--app-muted);font-size:12px;line-height:1.4}.admin-broadcast__preview{background:var(--app-secondary);border-radius:12px;gap:5px;margin-top:16px;padding:14px;display:grid}.admin-broadcast__preview>div{align-items:baseline;gap:7px;display:flex}.admin-broadcast__preview strong{font-size:26px;line-height:1}.admin-broadcast__preview span{color:var(--app-muted);font-size:13px}.admin-broadcast__preview small{color:var(--app-hint);font-size:12px}.admin-broadcast__error,.admin-broadcast__notice{border-radius:10px;margin:12px 0 0;padding:10px 12px;font-size:13px;line-height:1.4}.admin-broadcast__error{background:var(--app-danger-soft);color:var(--app-danger-text)}.admin-broadcast__notice{background:var(--app-success-soft);color:var(--app-success)}.admin-broadcast__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.admin-broadcast__actions button{width:100%}.admin-broadcast__job-header>div{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-broadcast__job-header h3{font-size:16px}.admin-broadcast__status{background:var(--app-secondary);color:var(--app-muted);text-transform:capitalize;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}.admin-broadcast__status--finished{background:var(--app-success-soft);color:var(--app-success)}.admin-broadcast__status--failed{background:var(--app-danger-soft);color:var(--app-danger-text)}.admin-broadcast__progress-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.admin-broadcast__progress-grid>div{background:var(--app-secondary);text-align:center;border-radius:10px;gap:3px;padding:10px;display:grid}.admin-broadcast__progress-grid strong{font-size:20px}.admin-broadcast__progress-grid span{color:var(--app-muted);font-size:12px}.admin-broadcast__progress{background:var(--app-secondary);border-radius:999px;height:7px;margin-top:14px;overflow:hidden}.admin-broadcast__progress>div{border-radius:inherit;background:var(--app-accent);height:100%;transition:width .18s}@media (width<=480px){.admin-broadcast__actions{grid-template-columns:1fr}}@media (width>=900px){.admin-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}.upload-page{gap:28px;display:grid}.upload-page__composer,.upload-page__my-photos{min-width:0}.upload-page__composer{border-bottom:1px solid var(--app-border);padding-bottom:26px}.upload-page__title{margin:0 0 14px;font-size:20px;line-height:1.2}.upload-page__section-heading{margin-bottom:14px}.upload-page__section-heading .upload-page__title{margin-bottom:5px}.upload-page__section-heading p{color:var(--app-muted);margin:0;font-size:13px;line-height:1.4}.rated-photo-card__report{z-index:2;border:1px solid var(--app-border);background:var(--app-surface);width:40px;height:40px;color:var(--app-muted);cursor:pointer;border-radius:999px;place-items:center;padding:0;font-size:22px;font-weight:800;line-height:1;display:grid;position:absolute;top:10px;left:10px;box-shadow:0 2px 8px #00000029}.rated-photo-card__report--pending{border-color:color-mix(in srgb, var(--app-danger) 35%, var(--app-border));background:color-mix(in srgb, var(--app-danger) 18%, var(--app-surface));color:var(--app-danger);cursor:default}@media (hover:hover){.rated-photo-card__report:not(.rated-photo-card__report--pending):hover{background:color-mix(in srgb, var(--app-muted) 12%, var(--app-surface))}}.rated-photo-card__report:focus-visible{outline:3px solid color-mix(in srgb, var(--app-accent) 28%, transparent);outline-offset:2px}.report-reasons{outline:none;gap:8px;margin:14px 0;display:grid}.report-reason{border:1px solid var(--app-border);background:var(--app-surface);cursor:pointer;border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px 12px;display:grid}.report-reason--selected{border-color:color-mix(in srgb, var(--app-accent) 55%, var(--app-border));background:color-mix(in srgb, var(--app-accent) 8%, var(--app-surface))}.report-reason input{margin-top:3px}.report-reason span{gap:3px;display:grid}.report-reason small{color:var(--app-muted);font-size:12px;line-height:1.35}.admin-section-description{color:var(--app-muted);margin:-6px 0 16px;font-size:13px;line-height:1.4}.admin-request-card__heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-request-badge{border:1px solid var(--app-border);background:var(--app-secondary);min-height:26px;color:var(--app-text);border-radius:999px;align-items:center;padding:4px 8px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.admin-request-badge--report{border-color:color-mix(in srgb, var(--app-danger) 35%, var(--app-border));color:var(--app-danger)}@media (width<=420px){.rated-photo-card__report{width:38px;height:38px;font-size:21px}}.admin-tabs__badge{background:var(--app-accent);min-width:1.5em;color:var(--app-button-text,#fff);text-align:center;font-variant-numeric:tabular-nums;border-radius:99px;margin-left:7px;padding:1px 5px;font-size:11px;display:inline-block}.admin-feedback,.admin-feedback__list{gap:16px;min-width:0;display:grid}.admin-feedback__header,.admin-feedback__card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-feedback__header h2{margin:0}.admin-feedback__filters{flex-wrap:wrap;gap:8px;display:flex}.admin-feedback__card{border:1px solid var(--app-border);background:var(--app-surface);overflow-wrap:anywhere;border-radius:16px;min-width:0;padding:18px}.admin-feedback__meta{color:var(--app-muted);flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:12px;line-height:1.5;display:flex}.admin-feedback__text{white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 0;line-height:1.6}.admin-feedback__status{background:var(--app-secondary);color:var(--app-muted);border-radius:99px;flex:none;padding:4px 9px;font-size:12px}.admin-feedback__status--new{color:var(--app-accent);background:color-mix(in srgb, var(--app-accent) 12%, var(--app-surface))}.tournament-settings-card{border-color:var(--app-accent)}.tournament-header,.tournament-scoreboard,.tournament-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tournament-header h2{overflow-wrap:anywhere;margin-bottom:4px}.tournament-room{min-width:0}.tournament-room button,.admin-tournaments button{border:1px solid var(--app-border);background:var(--app-surface);min-height:40px;color:var(--app-text);border-radius:10px;padding:8px 12px}.tournament-room button:disabled,.admin-tournaments button:disabled{cursor:default}.tournament-room .primary-button,.admin-tournaments .primary-button{background:var(--app-accent);color:var(--app-button-text,white)}.tournament-privacy{color:var(--app-hint);font-size:13px}.tournament-notice{border:1px solid var(--app-border);background:var(--app-surface);border-radius:10px;padding:12px}.tournament-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.tournament-room .tournament-choice{background:var(--app-surface);border:3px solid #0000;justify-content:center;align-items:center;min-width:0;height:clamp(180px,48svh,420px);padding:0;display:flex;position:relative;overflow:hidden}.tournament-room .tournament-choice--selected{border-color:var(--app-accent)}.tournament-grid--3 .tournament-choice,.tournament-grid--4 .tournament-choice{height:clamp(100px,24svh,220px)}.tournament-grid--3 .tournament-choice:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 4px)}.tournament-choice img,.tournament-finale .tournament-grid img{object-fit:contain;width:100%;height:100%;display:block}.tournament-choice img[data-image-loading=true]{background:var(--app-border);min-height:80px}.tournament-choice__check{background:var(--app-accent);color:#fff;border-radius:50%;padding:4px 8px;position:absolute;bottom:6px;right:6px}.tournament-countdown{text-align:center;margin:36px 0;font-size:80px}.tournament-result{gap:8px;margin:12px 0;display:grid}.tournament-result__row{border:1px solid var(--app-border);border-radius:10px;grid-template-columns:72px minmax(0,1fr);align-items:start;gap:12px;padding:8px;display:grid}.tournament-result__row>img{object-fit:contain;width:72px;height:80px}.tournament-result__row--winner{border-color:var(--app-accent)}.tournament-winner-label{color:var(--app-accent);margin-top:5px;font-weight:700;display:block}.tournament-people{margin:8px 0;font-size:13px}.tournament-people summary{cursor:pointer;overflow-wrap:anywhere}.tournament-people ul{max-height:180px;padding-left:20px;overflow:auto}.tournament-avatars{vertical-align:middle;flex-wrap:wrap;margin-right:6px;display:inline-flex}.tournament-avatars img,.tournament-avatars>span{object-fit:cover;border:2px solid var(--app-surface);background:var(--app-border);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;margin-right:-5px;font-size:10px;display:inline-flex}.tournament-finale .tournament-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.tournament-finale .tournament-grid img{max-height:45svh}.tournament-history>section{margin:18px 0}.tournament-form{gap:14px;display:grid}.tournament-form label{gap:6px;display:grid}.tournament-form input,.tournament-form select{border:1px solid var(--app-border);width:100%;min-width:0;max-width:100%;color:var(--app-text);background:var(--app-bg);border-radius:8px;padding:10px}.tournament-form label.tournament-checkbox{align-items:center;gap:10px;display:flex}.tournament-checkbox input{flex-shrink:0;width:20px;height:20px}.tournament-photo-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.tournament-photo-picker img{object-fit:contain;width:100%;height:90px}.tournament-photo-picker button[aria-pressed=true]{border:2px solid var(--app-accent)}.tournament-photo-picker--selected>div{flex-direction:column;gap:4px;min-width:0;display:flex}.tournament-photo-picker--selected button{padding:5px;font-size:12px}.tournament-preview-pair{border-bottom:1px solid var(--app-border);grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;display:grid}.tournament-preview-pair img{object-fit:contain;width:100%;height:130px}.tournament-preview-pair span{text-align:center;display:block}.tournament-admin-list .settings-card{margin-top:14px}@media (width<=360px){.tournament-photo-picker--selected{grid-template-columns:repeat(2,minmax(0,1fr))}}.tournament-result--prominent{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-result--prominent .tournament-result__row{flex-direction:column;gap:8px;display:flex}.tournament-result--prominent .tournament-result__row>img{width:100%;height:clamp(100px,24svh,220px)}.tournament-result--prominent>.tournament-notice{grid-column:1/-1}:root{--app-tg-safe-top:max(var(--tg-safe-area-inset-top,0px), var(--tg-content-safe-area-inset-top,0px));--app-tg-safe-bottom:max(var(--tg-safe-area-inset-bottom,0px), var(--tg-content-safe-area-inset-bottom,0px));--app-tg-safe-left:max(var(--tg-safe-area-inset-left,0px), var(--tg-content-safe-area-inset-left,0px));--app-tg-safe-right:max(var(--tg-safe-area-inset-right,0px), var(--tg-content-safe-area-inset-right,0px));--app-tg-viewport-height:var(--tg-viewport-stable-height,100dvh)}.app{min-height:var(--app-tg-viewport-height)}.app__content{padding-top:calc(20px + var(--app-tg-safe-top));padding-right:calc(16px + var(--app-tg-safe-right));padding-bottom:calc(100px + var(--app-tg-safe-bottom));padding-left:calc(16px + var(--app-tg-safe-left))}.bottom-navigation{padding-right:var(--app-tg-safe-right);padding-bottom:var(--app-tg-safe-bottom);padding-left:var(--app-tg-safe-left)}.dialog-backdrop{padding-top:calc(20px + var(--app-tg-safe-top));padding-right:calc(20px + var(--app-tg-safe-right));padding-bottom:calc(20px + var(--app-tg-safe-bottom));padding-left:calc(20px + var(--app-tg-safe-left))}.photo-viewer{padding-top:calc(24px + var(--app-tg-safe-top));padding-right:calc(24px + var(--app-tg-safe-right));padding-bottom:calc(24px + var(--app-tg-safe-bottom));padding-left:calc(24px + var(--app-tg-safe-left))}.photo-viewer__close{top:calc(16px + var(--app-tg-safe-top));right:calc(16px + var(--app-tg-safe-right))}.photo-viewer--simple .photo-viewer__content{max-width:calc(100vw - 48px - var(--app-tg-safe-left) - var(--app-tg-safe-right));max-height:calc(var(--app-tg-viewport-height) - 48px - var(--app-tg-safe-top) - var(--app-tg-safe-bottom))}.photo-viewer--simple .photo-viewer__image{max-width:calc(100vw - 48px - var(--app-tg-safe-left) - var(--app-tg-safe-right));max-height:calc(var(--app-tg-viewport-height) - 120px - var(--app-tg-safe-top) - var(--app-tg-safe-bottom))}.photo-viewer--with-details .photo-viewer__content,.photo-viewer--with-details .photo-viewer__image{max-height:calc(var(--app-tg-viewport-height) - 48px - var(--app-tg-safe-top) - var(--app-tg-safe-bottom))}@media (width<=700px){.photo-viewer{padding-top:calc(12px + var(--app-tg-safe-top));padding-right:calc(12px + var(--app-tg-safe-right));padding-bottom:calc(12px + var(--app-tg-safe-bottom));padding-left:calc(12px + var(--app-tg-safe-left))}.photo-viewer--simple .photo-viewer__content{max-width:calc(100vw - 24px - var(--app-tg-safe-left) - var(--app-tg-safe-right));max-height:calc(var(--app-tg-viewport-height) - 24px - var(--app-tg-safe-top) - var(--app-tg-safe-bottom))}.photo-viewer--simple .photo-viewer__image{max-width:calc(100vw - 24px - var(--app-tg-safe-left) - var(--app-tg-safe-right));max-height:calc(var(--app-tg-viewport-height) - 100px - var(--app-tg-safe-top) - var(--app-tg-safe-bottom))}.photo-viewer--with-details .photo-viewer__content{max-height:calc(var(--app-tg-viewport-height) - 24px - var(--app-tg-safe-top) - var(--app-tg-safe-bottom))}}:root{--app-bottom-navigation-height:64px;--rate-screen-gap:10px}.bottom-navigation{z-index:100;isolation:isolate;background:var(--app-surface);box-shadow:0 -4px 16px #0000000a}.app--rate{width:100%;height:var(--app-tg-viewport-height,100dvh);overscroll-behavior:none;min-height:0;position:fixed;top:0;left:0;right:0;overflow:hidden}.app__content--rate{height:var(--app-tg-viewport-height,100dvh);min-height:0;padding-top:calc(10px + var(--app-tg-safe-top));padding-bottom:calc(var(--app-bottom-navigation-height) + 10px + var(--app-tg-safe-bottom));overflow:hidden}.app__content--rate .rate-page{width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.app__content--rate .rate-page--rating,.app__content--rate .rate-page--result{gap:var(--rate-screen-gap);display:grid}.app__content--rate .rate-page--rating{grid-template-rows:minmax(0,1fr) auto}.app__content--rate .rate-page--result{grid-template-rows:minmax(0,.72fr) minmax(0,1.28fr)}.app__content--rate .rate-page--loading,.app__content--rate .rate-page--empty{justify-content:center;align-items:center;display:flex}.app__content--rate .rate-photo-card{border-radius:14px;width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.app__content--rate .rate-photo-card__image{object-fit:contain;width:100%;max-width:none;height:100%;max-height:none;display:block}.app__content--rate .rate-photo-card__remaining{z-index:2;color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000009e;border:1px solid #ffffff47;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:700;line-height:1;position:absolute;top:8px;right:8px}.app__content--rate .rating-panel{border-radius:14px;margin-top:0;padding:11px 14px}.app__content--rate .rating-panel__header h2{margin:0 0 2px;font-size:16px;line-height:1.2}.app__content--rate .rating-panel__header p{margin:0 0 8px;font-size:12px;line-height:1.3}.app__content--rate .rating-selection{min-height:38px;margin-bottom:7px;padding:7px 10px}.app__content--rate .rating-selection__label{font-size:12px}.app__content--rate .rating-selection__value{font-size:22px}.app__content--rate .rating-scale-groups{gap:7px;margin-bottom:7px;display:grid}.app__content--rate .rating-choice-group{border:0;min-width:0;margin:0;padding:0}.app__content--rate .rating-choice-group__legend{width:100%;color:var(--app-muted);justify-content:space-between;align-items:center;margin:0 0 4px;padding:0;font-size:12px;line-height:1.2;display:flex}.app__content--rate .rating-choice-group__legend strong{color:var(--app-text);font-size:13px}.app__content--rate .rating-choice-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;display:grid}.app__content--rate .rating-choice{border:1px solid var(--app-border);background:var(--app-secondary);min-width:0;min-height:34px;color:var(--app-text);-webkit-tap-highlight-color:transparent;border-radius:8px;padding:4px 2px;font-size:13px;font-weight:650;line-height:1}.app__content--rate .rating-choice--selected{border-color:var(--app-accent);background:var(--app-accent);color:var(--app-on-accent)}.app__content--rate .rating-choice:disabled:not(.rating-choice--selected){opacity:.28;cursor:not-allowed}.app__content--rate .rating-choice--selected:disabled{opacity:.72}.app__content--rate .custom-range{margin-bottom:7px}.app__content--rate .custom-range__area{padding:25px 12px 29px}.app__content--rate .custom-range__scale{font-size:10px}.app__content--rate .rating-submit{min-height:42px;padding:9px 16px}.app__content--rate .rating-result{border-radius:14px;flex-direction:column;height:100%;min-height:0;margin-top:0;padding:10px 12px;display:flex;overflow:hidden}.app__content--rate .rating-result__header{flex:none}.app__content--rate .rating-result__header h2{margin:0 0 2px;font-size:15px;line-height:1.2}.app__content--rate .rating-result__header p{margin:0 0 7px;font-size:11px;line-height:1.25}.app__content--rate .rating-result-tabs{flex:none;min-height:34px;margin-bottom:6px;padding:3px}.app__content--rate .rating-result-tabs__item{min-height:30px;padding:4px 6px;font-size:11px}.app__content--rate .rating-result__tab-content{flex:auto;min-height:0;display:flex;overflow:hidden}.app__content--rate .rating-result__tab-content>*{flex:auto;min-height:0}.app__content--rate .rating-result__comment-pane{align-items:flex-start;display:flex}.app__content--rate .comment-composer--compact{flex-direction:column;flex:none;width:100%;min-height:0;display:flex}.app__content--rate .comment-composer--compact .comment-composer__input{resize:none;flex:none;height:54px;min-height:54px;padding:8px 10px;line-height:1.3}.app__content--rate .comment-composer--compact .comment-composer__footer{flex:none;margin-bottom:8px}.app__content--rate .comment-composer--compact .comment-composer__success,.app__content--rate .comment-composer--compact .comment-composer__error{flex:none}.app__content--rate .photo-rating-stats{flex-direction:column;flex:auto;min-height:0;display:flex}.app__content--rate .rating-result__your-rating{flex:none;min-height:38px;margin-bottom:6px;padding:6px 10px}.app__content--rate .rating-result__your-rating span{font-size:12px}.app__content--rate .rating-result__your-rating strong{font-size:21px}.app__content--rate .rating-result__community{flex-direction:column;flex:auto;min-height:0;margin-bottom:7px;display:flex}.app__content--rate .rating-result__community h3{flex:none;margin:0 0 5px;font-size:12px}.app__content--rate .rating-result__stats{flex:none;gap:6px}.app__content--rate .rating-result__stat{gap:2px;min-height:42px;padding:5px 8px}.app__content--rate .rating-result__stat span{font-size:11px}.app__content--rate .rating-result__stat strong{font-size:17px}.app__content--rate .photo-rating-stats__histogram{flex:auto;min-height:0;margin-top:6px;overflow:hidden}.app__content--rate .stats-histogram,.app__content--rate .stats-histogram__plot{height:100%;min-height:0}.app__content--rate .stats-histogram__column{min-height:0}.app__content--rate .stats-histogram__chart{flex:auto;height:auto}.app__content--rate .stats-histogram__readout,.app__content--rate .stats-histogram__caption{min-height:0;font-size:9px}.app__content--rate .stats-histogram{--histogram-label-height:13px;gap:3px}.app__content--rate .stats-histogram__label{font-size:9px}.app__content--rate .rating-result .primary-button{flex:none;min-height:40px;padding:8px 16px}.app__content--rate .rate-page__error{z-index:20;margin:0;position:absolute;top:8px;left:8px;right:8px;box-shadow:0 4px 16px #0000001f}.app__content--rate .rate-loading,.app__content--rate .rate-empty{width:100%;max-height:100%;overflow:hidden}.app__content--rate .rate-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;padding:8px 18px 12px;display:flex}.app__content--rate .rate-empty__sticker-wrap{place-items:center;width:min(64vw,230px);height:min(34vh,230px);min-height:120px;display:grid}.app__content--rate .rate-empty__sticker{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 8px 16px #0000001a);width:100%;height:100%;display:block}.app__content--rate .rate-empty__copy{gap:5px;max-width:340px;display:grid}.app__content--rate .rate-empty__phrase{color:var(--app-text);margin:0;font-size:17px;font-weight:750;line-height:1.3}.app__content--rate .rate-empty__status{color:var(--app-muted);margin:0;font-size:12px;line-height:1.4}.app__content--rate .rate-empty .primary-button{width:min(100%,280px)}.app__content--rate .rate-loading__photo{max-height:min(42vh,320px)}@media (height<=700px){.app__content--rate{padding-top:calc(6px + var(--app-tg-safe-top));padding-bottom:calc(var(--app-bottom-navigation-height) + 6px + var(--app-tg-safe-bottom))}.app__content--rate .rate-page--rating,.app__content--rate .rate-page--result{gap:6px}.app__content--rate .rating-panel{padding:8px 11px}.app__content--rate .rating-panel__header p{display:none}.app__content--rate .rating-panel__header h2{margin-bottom:5px;font-size:14px}.app__content--rate .rating-selection{min-height:32px;margin-bottom:4px;padding:4px 8px}.app__content--rate .rating-selection__value{font-size:19px}.app__content--rate .rating-scale-groups{gap:4px;margin-bottom:4px}.app__content--rate .rating-choice-group__legend{margin-bottom:3px;font-size:11px}.app__content--rate .rating-choice-group__legend strong{font-size:12px}.app__content--rate .rating-choice-grid{gap:3px}.app__content--rate .rating-choice{border-radius:7px;min-height:29px;font-size:12px}.app__content--rate .custom-range{margin-bottom:4px}.app__content--rate .custom-range__area{padding:23px 12px 27px}.app__content--rate .rating-submit{min-height:38px;padding:7px 14px}.app__content--rate .rating-result{padding:7px 9px}.app__content--rate .rating-result__header p{display:none}.app__content--rate .rating-result__header h2{margin-bottom:4px;font-size:13px}.app__content--rate .rating-result__your-rating{min-height:32px;margin-bottom:4px;padding:4px 8px}.app__content--rate .rating-result__your-rating strong{font-size:18px}.app__content--rate .rating-result__community h3{display:none}.app__content--rate .rating-result__stat{min-height:34px;padding:3px 6px}.app__content--rate .rating-result__stat strong{font-size:15px}.app__content--rate .photo-rating-stats__histogram{margin-top:4px}.app__content--rate .rating-result .primary-button{min-height:36px;padding:6px 14px}}@media (height<=540px){.app__content--rate .rate-page--rating{grid-template-rows:minmax(0,1fr) auto}.app__content--rate .rate-page--result{grid-template-rows:minmax(0,.58fr) minmax(0,1.42fr)}.app__content--rate .rating-panel__header,.app__content--rate .rating-selection__label{display:none}.app__content--rate .rating-selection{justify-content:center}.app__content--rate .rating-scale-groups{gap:3px;margin-bottom:3px}.app__content--rate .rating-choice-group__legend{margin-bottom:2px;font-size:10px}.app__content--rate .rating-choice-grid{gap:2px}.app__content--rate .rating-choice{min-height:25px;padding-top:2px;padding-bottom:2px;font-size:11px}.app__content--rate .custom-range__scale{font-size:9px}.app__content--rate .rating-result__header{display:none}.app__content--rate .rating-result-tabs{min-height:28px;margin-bottom:3px;padding:2px}.app__content--rate .rating-result-tabs__item{min-height:24px;padding:2px 4px;font-size:10px}.app__content--rate .comment-composer--compact .comment-composer__input{min-height:42px;padding:6px 8px;font-size:12px}.app__content--rate .comment-composer--compact .comment-composer__send{min-height:30px;padding:4px 10px}.app__content--rate .rating-result__your-rating span{font-size:10px}.app__content--rate .rating-result__stat span{font-size:9px}}.app__content--rate .rating-panel{padding:8px 12px}.app__content--rate .rating-scale-groups{gap:6px;margin-bottom:6px}@media (height<=700px){.app__content--rate .rating-panel{padding:6px 10px}}@media (height<=540px){.app__content--rate .rating-panel{padding:5px 9px}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--app-fallback-bg:#fff;--app-fallback-surface:#fff;--app-fallback-secondary:#f5f5f5;--app-fallback-text:#111;--app-fallback-muted:#666;--app-fallback-hint:#777;--app-fallback-border:#e2e2e2;--app-fallback-border-strong:#b8b8b8;--app-fallback-track:#e7e7e7;--app-fallback-accent:#111;--app-fallback-on-accent:#fff;--app-fallback-danger:#c62828;--app-fallback-success:#2e7d32;--app-fallback-info:#1565c0;--app-fallback-neutral-action:#666;--app-fallback-success-soft:#edf7ed;--app-fallback-danger-soft:#fff1f1;--app-fallback-danger-border:#efc4c4;--app-fallback-danger-text:#7a2424;--app-bg:var(--tg-theme-bg-color,var(--app-fallback-bg));--app-surface:var(--tg-theme-section-bg-color,var(--tg-theme-bg-color,var(--app-fallback-surface)));--app-secondary:var(--tg-theme-secondary-bg-color,var(--app-fallback-secondary));--app-bottom-nav-bg:var(--tg-theme-bottom-bar-bg-color,var(--tg-theme-bg-color,var(--app-fallback-bg)));--app-text:var(--tg-theme-text-color,var(--app-fallback-text));--app-muted:var(--tg-theme-subtitle-text-color,var(--tg-theme-hint-color,var(--app-fallback-muted)));--app-hint:var(--tg-theme-hint-color,var(--app-fallback-hint));--app-border:var(--tg-theme-section-separator-color,var(--app-fallback-border));--app-border-strong:var(--tg-theme-hint-color,var(--app-fallback-border-strong));--app-track:var(--tg-theme-secondary-bg-color,var(--app-fallback-track));--app-accent:var(--tg-theme-button-color,var(--tg-theme-accent-text-color,var(--app-fallback-accent)));--app-on-accent:var(--tg-theme-button-text-color,var(--app-fallback-on-accent));--app-danger:var(--tg-theme-destructive-text-color,var(--app-fallback-danger));--app-link:var(--tg-theme-link-color,var(--app-accent));--app-success:var(--app-fallback-success);--app-info:var(--app-fallback-info);--app-neutral-action:var(--app-fallback-neutral-action);--app-success-soft:var(--app-fallback-success-soft);--app-danger-soft:var(--app-fallback-danger-soft);--app-danger-border:var(--app-fallback-danger-border);--app-danger-text:var(--app-fallback-danger-text)}:root[data-app-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-fallback-bg:#17212b;--app-fallback-surface:#202b36;--app-fallback-secondary:#242f3d;--app-fallback-text:#f5f5f5;--app-fallback-muted:#b2bbc5;--app-fallback-hint:#8d99a6;--app-fallback-border:#344150;--app-fallback-border-strong:#536171;--app-fallback-track:#344150;--app-fallback-accent:#5aa7e8;--app-fallback-on-accent:#fff;--app-fallback-danger:#ff6b6b;--app-fallback-success:#65c466;--app-fallback-info:#64a8ff;--app-fallback-neutral-action:#596777;--app-fallback-success-soft:#183628;--app-fallback-danger-soft:#3a2024;--app-fallback-danger-border:#6e3840;--app-fallback-danger-text:#ffb0b0}@media (prefers-color-scheme:dark){:root:not([data-app-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-fallback-bg:#17212b;--app-fallback-surface:#202b36;--app-fallback-secondary:#242f3d;--app-fallback-text:#f5f5f5;--app-fallback-muted:#b2bbc5;--app-fallback-hint:#8d99a6;--app-fallback-border:#344150;--app-fallback-border-strong:#536171;--app-fallback-track:#344150;--app-fallback-accent:#5aa7e8;--app-fallback-on-accent:#fff;--app-fallback-danger:#ff6b6b;--app-fallback-success:#65c466;--app-fallback-info:#64a8ff;--app-fallback-neutral-action:#596777;--app-fallback-success-soft:#183628;--app-fallback-danger-soft:#3a2024;--app-fallback-danger-border:#6e3840;--app-fallback-danger-text:#ffb0b0}}html,body,#root{background:var(--app-bg);color:var(--app-text)}input,textarea,select{color:var(--app-text);caret-color:var(--app-accent)}input::placeholder,textarea::placeholder{color:var(--app-hint);opacity:1}a{color:var(--app-link)}.bottom-navigation{background:var(--app-bottom-nav-bg)}.bottom-navigation__item{color:var(--app-hint)}.bottom-navigation__item--active{color:var(--app-accent)}.rated-photo-card__image,.upload-preview,.admin-photo-card__image,.admin-hidden-card__image,.admin-deletion-card__image,.my-photo-card__image,.rate-photo-card{background:var(--app-secondary)}.danger-button,.admin-user-card__status--banned{color:var(--app-on-accent)}.approve-button{background:var(--app-success)}.restore-button{background:var(--app-info)}.hide-button,.reject-button{background:var(--app-neutral-action)}.rating-slider,input[type=range]{accent-color:var(--app-accent)}.custom-range__selected,.stats-progress__fill,.stats-histogram__bar,.admin-coverage__fill,.stats-agreement__fill{background:var(--app-accent)}.custom-range__handle-dot{border-color:var(--app-accent);background:var(--app-surface)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}@media (width<=700px){.photo-viewer--with-details .photo-viewer__content{width:100%;max-height:calc(var(--app-tg-viewport-height,100dvh) - 24px - var(--app-tg-safe-top) - var(--app-tg-safe-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;display:block;overflow:hidden auto}.photo-viewer--with-details .photo-viewer__content::-webkit-scrollbar{display:none}.photo-viewer--with-details .photo-viewer__image{object-fit:contain;width:100%;height:auto;max-height:min(38dvh,320px);display:block}.photo-viewer--with-details .photo-viewer__details{min-height:auto;padding:14px 16px calc(18px + var(--app-tg-safe-bottom));justify-content:flex-start}.photo-viewer--with-details .photo-rating-stats__histogram{min-height:150px}.photo-viewer--with-details .stats-histogram__chart{min-height:130px}.photo-viewer--with-details .stats-histogram{--histogram-height:146px;--histogram-label-height:16px}}button[disabled]{cursor:default;touch-action:manipulation}button[aria-busy=true]{cursor:progress;pointer-events:none;opacity:.72}button:not([disabled]){touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (hover:none) and (pointer:coarse){button:not([disabled]):active{transform:scale(.985)}}.network-banner{top:calc(8px + var(--app-tg-safe-top));left:calc(12px + var(--app-tg-safe-left));right:calc(12px + var(--app-tg-safe-right));z-index:3000;border:1px solid var(--app-border);background:var(--app-surface);min-height:38px;color:var(--app-text);pointer-events:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:600;display:flex;position:fixed;box-shadow:0 6px 22px #00000024}.network-banner__dot{background:var(--app-danger);border-radius:999px;flex:none;width:8px;height:8px}.async-error-state{border:1px solid var(--app-border);background:var(--app-surface);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:12px;width:100%;padding:18px 16px;display:flex}.async-error-state p{color:var(--app-text);margin:0;font-size:14px;line-height:1.45}.async-error-state .secondary-button{min-width:120px}.async-error-state--compact{gap:8px;margin-top:12px;padding:12px 14px}.async-error-state--compact p{font-size:13px}.async-error-state--compact .secondary-button{min-height:36px;padding:7px 12px}.photo-viewer__details .async-error-state{margin:0}@media (width<=700px){.network-banner{top:calc(6px + var(--app-tg-safe-top));left:calc(8px + var(--app-tg-safe-left));right:calc(8px + var(--app-tg-safe-right))}}.dialog-backdrop{top:var(--app-modal-viewport-top,0px);height:var(--app-modal-viewport-height,var(--app-tg-viewport-height,100dvh));bottom:auto;left:0;right:0;overflow:hidden}.dialog{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:100%;scroll-padding-top:24px;scroll-padding-bottom:92px;overflow:hidden auto}.dialog:focus{outline:none}.dialog__textarea,.admin-user-delete-confirmation input{scroll-margin-top:72px;scroll-margin-bottom:92px}.dialog__actions{z-index:3;background:var(--app-surface);padding-top:10px;padding-bottom:2px;position:sticky;bottom:0}.photo-viewer{top:var(--app-modal-viewport-top,0px);height:var(--app-modal-viewport-height,var(--app-tg-viewport-height,100dvh));bottom:auto;left:0;right:0}.photo-viewer:focus{outline:none}:root[data-app-keyboard-open=true] .dialog-backdrop{padding-top:calc(8px + var(--app-tg-safe-top));padding-bottom:calc(8px + var(--app-tg-safe-bottom));align-items:flex-start}:root[data-app-keyboard-open=true] .dialog{max-height:100%}:root[data-app-keyboard-open=true] .dialog__actions{margin-top:12px}@media (width<=700px){.dialog__textarea,.admin-user-delete-confirmation input{font-size:16px}.dialog__textarea{resize:none;min-height:96px;max-height:32dvh}.dialog__actions{gap:8px}.dialog__actions button{min-height:44px}}@media (height<=560px){.dialog{padding-top:14px;padding-bottom:14px}.dialog h2{margin-top:0}.dialog__textarea{min-height:80px;max-height:120px}}.loading-state{border:1px solid var(--app-border);background:var(--app-secondary);width:100%;min-height:clamp(120px,22dvh,180px);color:var(--app-muted);text-align:center;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex}.loading-state--compact{background:0 0;border:0;min-height:44px;margin-top:10px;padding:8px 12px;font-size:13px}.loading-state__spinner{border:2px solid var(--app-border-strong);border-top-color:var(--app-accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite app-loading-spin}.loading-state--compact .loading-state__spinner{width:14px;height:14px}@keyframes app-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-state__spinner{animation-duration:1.6s}}.empty-state-panel{border:1px solid var(--app-border);background:var(--app-secondary);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:clamp(120px,20dvh,170px);padding:24px 18px;display:flex}.empty-state-panel--compact{min-height:auto;padding:14px}.empty-state-panel__title{color:var(--app-text);margin-bottom:5px;font-size:16px}.empty-state-panel__message{max-width:34rem;color:var(--app-muted);margin:0;line-height:1.45}.empty-state-panel__actions{justify-content:center;gap:10px;margin-top:14px;display:flex}.empty-state{justify-content:center;align-items:center;min-height:88px;display:flex}.page-notice,.page-error{box-sizing:border-box;overflow-wrap:anywhere;max-width:100%;line-height:1.4}.page-notice{border-color:var(--app-accent)}.page-error{border-color:var(--app-danger)}.dialog__error{color:var(--app-danger);line-height:1.4}.async-error-state{min-height:120px}.async-error-state--compact{min-height:auto}.upload-success{border:1px solid var(--app-border);background:var(--app-surface);border-radius:16px;flex-direction:column;justify-content:center;min-height:clamp(220px,42dvh,360px);padding:24px 18px;display:flex}.upload-success p{max-width:30rem;margin-left:auto;margin-right:auto}.infinite-scroll-trigger{min-height:1px}.my-photos-list,.rated-photos-list,.admin-photo-list,.admin-deletion-list,.admin-hidden-list,.admin-all-photo-list,.admin-users__list{min-width:0}.loading-state,.empty-state-panel,.async-error-state{box-sizing:border-box;max-width:100%}.my-photo-tabs__item,.rated-filter-tabs__item,.admin-tabs__item{-webkit-tap-highlight-color:transparent}@media (width<=420px){.rated-filter-tabs__item{padding-left:2px;padding-right:2px;font-size:13px}.admin-tabs{gap:6px}.admin-tabs__item{min-height:42px;font-size:13px}}@media (height<=600px){.loading-state,.empty-state-panel{min-height:96px;padding-top:14px;padding-bottom:14px}.upload-success{min-height:180px;padding-top:16px;padding-bottom:16px}}.settings-page{gap:20px;max-width:640px;margin:0 auto;padding:12px 0 24px;display:grid}.settings-page h1{margin:0;font-size:25px}.settings-card{background:var(--tg-theme-secondary-bg-color,#f2f4f7);border-radius:20px;padding:22px}.settings-card h2{margin:0 0 8px;font-size:19px}.settings-card p{color:var(--tg-theme-hint-color,#78828e);margin:0 0 20px;line-height:1.5}.language-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.language-options button{border:1px solid var(--tg-theme-hint-color,#a0a8b4);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:12px;padding:14px 8px}.language-options button[aria-pressed=true]{background:var(--tg-theme-button-color,#3390ec);color:var(--tg-theme-button-text-color,#fff);border-color:#0000}.rating-selection-hint{color:var(--tg-theme-hint-color,#78828e);text-align:center;margin:0 0 12px}.stats-details{gap:16px;display:grid}.stats-details summary{cursor:pointer;background:var(--tg-theme-secondary-bg-color,#f2f4f7);border-radius:16px;padding:16px;font-weight:600}.stats-details[open]>.stats-card{margin-top:16px}.sticker-file-grid{grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:12px;display:grid}.sticker-file-card{border:1px solid var(--tg-theme-hint-color,#cbd3dc);border-radius:16px;align-content:start;justify-items:center;gap:10px;min-width:0;padding:12px 8px;display:grid}.sticker-file-card img,.sticker-file-card video{object-fit:contain;width:96px;height:96px}.sticker-file-card button{width:100%;padding:9px 7px;font-size:12px}.admin-stickers__field input[type=file]{width:100%;max-width:100%;font-size:13px}.bottom-navigation__item{overflow-wrap:anywhere;min-width:0;padding-inline:2px;font-size:clamp(10px,2.45vw,13px)}@media (prefers-color-scheme:dark){.settings-card,.stats-details summary{background:var(--tg-theme-secondary-bg-color,#202630)}}
