:root{--bg: #202124;--surface: #28292d;--surface-2: #333439;--surface-3: #3e3f45;--line: #36373c;--line-strong: #4a4b52;--text: #f3f4f6;--muted: #a3a6ae;--accent: #0088cc;--link: #ed8936;--danger: #f2706a;--ok: #7fd18f;--staff: rgb(26 10 58 / .9);--r: 10px;--r-lg: 12px;--r-xl: 16px;--pill: 9999px;--card: 84px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--link);font-weight:600;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column;padding-bottom:96px}.topbar,.main,.site-footer{width:100%;max-width:1240px;margin-inline:auto;padding-inline:24px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:40px;padding-bottom:24px}.brand h1{margin:0;font-size:32px;font-weight:700;line-height:1.2}.brand h1:after{content:"";display:block;width:48px;height:4px;margin-top:12px;border-radius:var(--pill);background:var(--accent)}.brand__sub{margin:14px 0 0;color:var(--muted)}.actions{display:flex;gap:8px}.main{display:flex;flex-direction:column;gap:16px;flex:1}.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;height:40px;border:0;background:var(--surface-2);border-radius:var(--pill);padding:0 18px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .12s}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:#f4f1fb;color:#1a0a3a}.btn--primary:hover:not(:disabled){background:#fff}.btn--ghost{background:transparent}.btn--ghost:hover:not(:disabled){background:var(--surface-2)}.btn--danger{color:var(--danger)}.btn--small{height:34px;padding:0 14px;font-size:13.5px}select.btn,.pool__filters select,.field select,.send-rest select{appearance:none;-webkit-appearance:none;display:inline-block;height:40px;line-height:40px;padding:0 38px 0 16px;border:0;border-radius:var(--pill);background-color:var(--surface-2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23a3a6ae' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;font-size:14px;font-weight:600;max-width:230px;text-overflow:ellipsis;cursor:pointer;field-sizing:content;text-align-last:center}select.btn--small{height:34px;line-height:34px;font-size:13.5px}select.btn:hover,.pool__filters select:hover,.field select:hover,.send-rest select:hover{background-color:var(--surface-3)}select option{background:var(--surface);color:var(--text)}.icon-btn{appearance:none;border:0;background:transparent;color:var(--muted);width:30px;height:30px;border-radius:var(--pill);cursor:pointer;display:grid;place-items:center}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:disabled{opacity:.25;cursor:default}.check{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.check input{accent-color:var(--accent);width:16px;height:16px;margin:0;transform:translateY(1px)}.toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 14px;border-radius:var(--pill);background:var(--surface-2);color:var(--muted);font-size:13.5px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color .12s,color .12s}.toggle:hover{background:var(--surface-3)}.toggle input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}.toggle:has(input:checked){background:#f4f1fb;color:#1a0a3a}.toggle:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.toggle--lg{height:40px;padding:0 16px;font-size:14px}.count{color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar__group{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.progress{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums}.progress__track{flex:0 0 160px;height:6px;background:var(--surface-2);border-radius:var(--pill);overflow:hidden}.progress__bar{display:block;height:100%;border-radius:var(--pill);background:var(--accent);transition:width .2s ease-out}.state{padding:60px 16px;text-align:center;color:var(--muted)}.state--error{color:var(--danger)}.board{display:flex;flex-direction:column;gap:8px}.size-compact{--card: 60px}.size-normal{--card: 84px}.size-large{--card: 116px}.tier{display:grid;grid-template-columns:minmax(100px,150px) 1fr auto;min-height:calc(var(--card) + 20px);background:var(--surface);border-radius:var(--r-lg);overflow:clip}.tier.is-over{box-shadow:inset 0 0 0 2px var(--accent)}.tier__label{appearance:none;border:0;display:flex;flex-direction:column;justify-content:flex-start;padding:10px 8px;text-align:center;font-weight:700;font-size:15px;cursor:pointer;word-break:break-word;line-height:1.2}.tier__label-inner{position:sticky;top:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:min(100%,220px)}.tier__count{font-size:12.5px;font-weight:600;opacity:.7;font-variant-numeric:tabular-nums}.tier__drop-hint{margin-top:6px;font-size:11.5px;font-weight:600;background:#000000a6;color:#fff;border-radius:var(--pill);padding:2px 8px}.tier__items,.pool__items{display:flex;flex-wrap:wrap;align-content:flex-start;gap:10px 8px;padding:10px;min-height:calc(var(--card) + 20px)}.tier__empty{display:flex;align-items:center;min-height:var(--card);color:var(--muted);font-size:13.5px;padding:0 6px;pointer-events:none}.tier__controls{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 6px}.add-tier{appearance:none;border:1.5px dashed var(--line-strong);background:transparent;color:var(--muted);border-radius:var(--r-lg);padding:12px;cursor:pointer;font-size:14px;font-weight:600}.add-tier:hover{color:var(--text);border-color:var(--muted)}.sortable{touch-action:manipulation;border-radius:var(--r);cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.sortable:active{cursor:grabbing}.card{width:var(--card);display:flex;flex-direction:column;gap:6px}.card__avatar{position:relative;width:var(--card);height:var(--card);border-radius:var(--r);overflow:hidden;background:var(--surface-2);outline:2px solid transparent;outline-offset:2px}.card--compact .card__avatar{border-radius:8px}.card__avatar img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;transition:transform .3s ease}.sortable:hover .card__avatar img{transform:scale(1.05)}.card__initial{display:grid;place-items:center;width:100%;height:100%;font-size:calc(var(--card) * .4);font-weight:700;color:var(--muted)}.card__pack{position:absolute;top:5px;right:5px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px #00000073}.card__staff{position:absolute;top:5px;left:5px;font-size:10px;font-weight:600;line-height:1.5;padding:0 6px;border-radius:var(--pill);background:var(--staff);color:#fff}.card--compact .card__staff{display:none}.card__check{position:absolute;inset:0;display:grid;place-items:center;background:#0088cc73;color:#fff}.card__count{position:absolute;bottom:5px;right:5px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;border-radius:var(--pill);padding:0 7px}.card.is-selected .card__avatar{outline-color:var(--accent)}.card.is-dragging{opacity:.3}.card.is-overlay{cursor:grabbing}.card.is-overlay .card__avatar{box-shadow:0 10px 24px #00000080}.card__meta{display:flex;flex-direction:column;align-items:center;min-width:0}.card__name{font-size:12.5px;font-weight:600;line-height:1.2;text-align:center;width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.card--large .card__name{font-size:14px}.card__pronouns{font-size:12px;color:var(--muted)}.card__overlay-name{position:absolute;inset:auto 0 0;background:#000000b3;color:#fff;font-size:9.5px;font-weight:600;padding:1px 3px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pool{background:var(--surface);border-radius:var(--r-xl);margin-top:8px}.pool.is-over{box-shadow:inset 0 0 0 2px var(--accent)}.pool__header{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px 16px 4px}.pool__title{display:flex;align-items:baseline;gap:10px}.pool__title h2{margin:0;font-size:20px;font-weight:700}.pool__filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.search{display:flex;align-items:center;gap:8px;height:40px;background:var(--surface-2);border-radius:var(--pill);padding:0 16px;color:var(--muted)}.search:focus-within{box-shadow:0 0 0 2px var(--accent)}.search input{background:transparent;border:0;outline:none;width:180px;color:var(--text)}.search input::placeholder{color:var(--muted)}.pool__items{min-height:120px;padding:16px}.pool__done{width:100%;text-align:center;color:var(--muted);margin:24px 0}.pool__footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:12px 16px;font-size:14px;color:var(--muted)}.send-rest{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.selbar{position:fixed;left:50%;bottom:14px;transform:translate(-50%);z-index:20;width:min(1100px,calc(100vw - 20px));display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px 10px 18px;border-radius:var(--r-xl);background:var(--surface-2);box-shadow:0 10px 30px #00000080}.selbar__count{font-size:14px;font-weight:600}.selbar__targets{display:flex;gap:6px;flex-wrap:wrap;flex:1}.chip{display:inline-flex;align-items:center;border-radius:var(--pill);padding:3px 10px;font-size:12.5px;font-weight:600;border:0;white-space:nowrap}.chip--btn{cursor:pointer;height:34px;padding:0 14px;font-size:13.5px}.chip--btn:hover{filter:brightness(1.08)}.chip--pool{background:var(--surface-3)}.modal{border:0;border-radius:var(--r-xl);background:var(--surface);color:var(--text);padding:0;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 32px);box-shadow:0 24px 60px #0000008c}.modal--wide{width:min(980px,calc(100vw - 24px))}.modal::backdrop{background:#0009}.modal__inner{display:flex;flex-direction:column;max-height:calc(100dvh - 34px)}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 14px 8px 22px}.modal__header h2{margin:0;font-size:18px;font-weight:700}.modal__body{padding:12px 22px 20px;overflow:auto;display:flex;flex-direction:column;gap:18px}.modal__footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 22px;border-top:1px solid var(--line)}.field{display:flex;flex-direction:column;gap:8px;font-size:13.5px;font-weight:600;color:var(--muted)}.field input[type=text]{height:42px;background:var(--surface-2);border:0;border-radius:var(--r);padding:0 14px;color:var(--text);font-size:15px;font-weight:400}.field input[type=text]:focus{outline:none;box-shadow:0 0 0 2px var(--accent)}.field--inline{flex-direction:row;align-items:center;gap:10px}.field--inline input[type=text]{height:40px;border-radius:var(--pill);min-width:0;width:300px;max-width:100%}.tier-preview{border-radius:var(--r-lg);padding:16px;font-weight:700;font-size:18px;text-align:center}.color-grid{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.swatch{width:32px;height:32px;border-radius:50%;border:0;cursor:pointer}.swatch.is-active,.swatch-custom.is-active{outline:2px solid var(--text);outline-offset:2px}.swatch-custom{position:relative;display:inline-flex;align-items:center;height:32px;padding:0 14px;background:var(--surface-2);border-radius:var(--pill);color:var(--text);font-size:13px;cursor:pointer}.swatch-custom input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.settings-actions{display:flex;flex-wrap:wrap;gap:8px}.hint{color:var(--muted);font-size:13.5px;margin:0}.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.preset{appearance:none;text-align:left;display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:var(--r-lg);border:0;background:var(--surface-2);cursor:pointer}.preset:hover{background:var(--surface-3)}.preset__name{font-weight:700}.preset__desc{color:var(--muted);font-size:13.5px}.preset__chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.export-options{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}.export-preview{border-radius:var(--r-lg);background:var(--bg);overflow:auto;max-height:58dvh}.status{margin-right:auto;font-size:13.5px}.status--ok{color:var(--ok)}.status--err{color:var(--danger)}.status--busy{color:var(--muted)}.site-footer{margin-top:48px;padding-top:24px;padding-bottom:24px;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}.site-footer ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;max-width:90ch}.x{background:#202124;color:#f3f4f6;padding:36px 36px 24px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif}.x__header{margin-bottom:22px}.x__title{font-size:34px;font-weight:700;line-height:1.15}.x__title:after{content:"";display:block;width:48px;height:4px;margin-top:12px;border-radius:9999px;background:#08c}.x__sub{color:#a3a6ae;font-size:15px;margin-top:10px}.x__rows{display:flex;flex-direction:column;gap:8px}.x__row{display:grid;grid-template-columns:150px 1fr;background:#28292d;border-radius:12px;overflow:hidden;min-height:calc(var(--av) + 20px)}.x__label{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px;font-weight:700;font-size:19px;line-height:1.2;word-break:break-word;gap:2px}.x__count{font-size:13px;font-weight:600;opacity:.7}.x__items{display:flex;flex-wrap:wrap;align-content:flex-start;gap:10px 8px;padding:10px}.x__item{width:var(--av);display:flex;flex-direction:column;gap:4px}.x__item img{width:var(--av);height:var(--av);border-radius:10px;object-fit:cover;display:block;background:#333439}.x__name{font-size:12px;font-weight:600;text-align:center;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.x__footer{display:flex;justify-content:space-between;gap:12px;margin-top:16px;color:#a3a6ae;font-size:13px}@media(max-width:640px){.topbar,.main,.site-footer{padding-inline:14px}.topbar{padding-top:24px;padding-bottom:16px}.brand h1{font-size:24px}.brand__sub{font-size:14px}.actions{width:100%}.actions .btn--primary{flex:1}.tier{grid-template-columns:72px 1fr auto}.tier__label{font-size:12.5px;padding:8px 4px}.tier__items{padding:8px}.tier__controls{padding:2px}.tier__controls .icon-btn{width:26px;height:26px}.size-normal{--card: 68px}.size-large{--card: 92px}.size-compact{--card: 52px}.search input{width:130px}.pool__items{padding:12px}.selbar__count{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important}}.btn,.toggle,.chip--btn,.search,.field--inline input[type=text],.field input[type=text]{padding-bottom:3px}select.btn,.pool__filters select,.field select,.send-rest select{padding-bottom:3px;line-height:37px}select.btn--small{line-height:31px}.card__staff,.card__count,.tier__drop-hint,.chip{padding-bottom:1px}.toggle{padding-left:48px;background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}.toggle:hover{background:var(--surface)}.toggle:before,.toggle:after{content:"";position:absolute;top:50%;transform:translateY(-50%);border-radius:var(--pill);transition:background-color .15s,left .15s}.toggle:before{left:12px;width:28px;height:16px;background:var(--surface-3)}.toggle:after{left:14px;width:12px;height:12px;background:var(--muted)}.toggle:has(input:checked){background:transparent;color:var(--text)}.toggle:has(input:checked):hover{background:var(--surface)}.toggle:has(input:checked):before{background:var(--accent)}.toggle:has(input:checked):after{left:26px;background:#fff}.tipbar{position:fixed;left:50%;bottom:14px;transform:translate(-50%);z-index:19;width:min(750px,calc(100vw - 20px));display:flex;align-items:center;gap:12px;padding:10px 10px 10px 14px;border-radius:var(--r-xl);background:var(--surface-2);box-shadow:0 10px 30px #00000080;font-size:14px}.tipbar__tag{flex:none;padding:1px 10px 2px;border-radius:var(--pill);background:var(--accent);color:#fff;font-size:12px;font-weight:700}.tipbar__text{flex:1;line-height:1.35}.tipbar .btn{flex:none;background:var(--surface-3)}.pool__items{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card),1fr));justify-items:center}.pool__done{grid-column:1 / -1}.room-count{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;opacity:.8}.room-count--full,.room-count--over{opacity:1;margin-top:2px;padding:1px 8px 2px;border-radius:var(--pill);background:#000000b3;color:#fff}.room-count--over{background:#b42318}.room-count--chip{margin:0 0 0 6px;font-size:11.5px}.room-count--chip.room-count--ok{opacity:.7}.add-room{display:flex;flex-wrap:wrap;gap:8px}.add-room .add-tier{flex:1 1 180px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.add-room .add-tier:disabled{opacity:.45;cursor:not-allowed}.add-room__count{font-size:12px;font-weight:500;opacity:.75;font-variant-numeric:tabular-nums}.room-info{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;border-radius:var(--r-lg);background:var(--surface-2);font-size:14px;color:var(--muted)}.room-info strong{color:var(--text)}.room-info .btn{margin-top:4px;background:var(--surface-3)}.x__room{font-size:13px}.tipbar{padding:12px 12px 12px 16px;background:#16364a;box-shadow:inset 0 0 0 2px var(--accent),0 12px 32px #0000008c;font-size:15px;animation:tip-in .35s cubic-bezier(.2,.9,.3,1.2) both,tip-pulse 1.2s ease-out .35s 2}.tipbar__text{font-weight:600}.tipbar .btn{background:var(--accent);color:#fff}.tipbar .btn:hover:not(:disabled){background:#0a9be6}@keyframes tip-in{0%{opacity:0;transform:translate(-50%,24px)}}@keyframes tip-pulse{0%{box-shadow:inset 0 0 0 2px var(--accent),0 12px 32px #0000008c,0 0 #0088ccb3}to{box-shadow:inset 0 0 0 2px var(--accent),0 12px 32px #0000008c,0 0 0 14px #08c0}}@media(prefers-reduced-motion:reduce){.tipbar{animation:none}}
