.assignment-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:14px}.assignment-header h2{margin:3px 0 5px;font-size:21px}.assignment-controls{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.assignment-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.assignment-controls select{min-width:220px;border:1px solid #bdcbd9;border-radius:8px;padding:10px;font:inherit;color:var(--text);background:#fff}.assignment-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assignment-actions span{font-size:13px;font-weight:700;color:var(--navy)}.assignment-result{margin:0 0 14px;padding:13px 16px;border:1px solid #b7e9d8;border-radius:10px;background:#e4f7ef;color:#126149;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13px}.assignment-result strong{font-size:14px}.assignment-result b{color:#0f513d;word-break:break-word}.ticket-legend{display:flex;gap:17px;align-items:center;margin:16px 2px;color:var(--muted);font-size:13px}.ticket-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.available{background:#36b992}.legend-dot.assigned{background:#d5a22a}.legend-dot.unavailable{background:#e88993}.ticket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:5px}.ticket-card{aspect-ratio:1;min-height:0;border:1px solid transparent;border-radius:7px;padding:4px;display:grid;place-items:center;font:inherit;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.ticket-card strong{font-size:14px;letter-spacing:.02em}.ticket-card.available{background:#e4f7ef;color:#16765d;border-color:#b7e9d8}.ticket-card.available:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(25,132,99,.18)}.ticket-card.assigned{background:#fff4d6;color:#916d11;border-color:#f0d58a;cursor:not-allowed}.ticket-card.unavailable{background:#fcebed;color:#aa3f4c;border-color:#f3c4ca;cursor:not-allowed}.ticket-card.locked{opacity:.8;cursor:not-allowed}.ticket-card.selected{background:#16765d;color:#fff;border-color:#0f5e49;box-shadow:0 5px 12px rgba(18,112,82,.27)}.button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.assignment-header{align-items:flex-start;flex-direction:column}.assignment-controls{width:100%;justify-content:space-between}}@media(max-width:560px){.assignment-controls,.assignment-actions{align-items:stretch;flex-direction:column;width:100%}.assignment-controls select{width:100%}.ticket-grid{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:4px}.ticket-card strong{font-size:12px}}

.ticket-grid-scroll{max-height:calc(100vh - 315px);min-height:220px;overflow:auto;padding:2px 8px 8px 2px;scrollbar-gutter:stable;overscroll-behavior:contain}@media(max-width:900px){.ticket-grid-scroll{max-height:calc(100vh - 395px)}}@media(max-width:560px){.ticket-grid-scroll{max-height:calc(100vh - 430px)}}
.ticket-card[data-tooltip]{position:relative}.ticket-card[data-tooltip]::after{content:attr(data-tooltip);position:absolute;z-index:30;left:50%;bottom:calc(100% + 8px);width:max-content;max-width:210px;padding:8px 10px;border-radius:8px;background:#172b42;color:#fff;font-size:12px;font-weight:600;line-height:1.35;text-align:left;box-shadow:0 8px 20px rgba(15,35,56,.24);transform:translate(-50%,4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .1s ease,transform .1s ease}.ticket-card[data-tooltip]::before{content:"";position:absolute;z-index:31;left:50%;bottom:calc(100% + 3px);border:5px solid transparent;border-top-color:#172b42;transform:translate(-50%,4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .1s ease,transform .1s ease}.ticket-card[data-tooltip]:hover::after,.ticket-card[data-tooltip]:hover::before,.ticket-card[data-tooltip]:focus-visible::after,.ticket-card[data-tooltip]:focus-visible::before{opacity:1;visibility:visible;transform:translate(-50%,0)}
.ticket-card.tooltip-below::after{top:calc(100% + 8px);bottom:auto;transform:translate(-50%,-4px)}.ticket-card.tooltip-below::before{top:calc(100% + 3px);bottom:auto;border-color:transparent transparent #172b42;transform:translate(-50%,-4px)}.ticket-card.tooltip-below:hover::after,.ticket-card.tooltip-below:hover::before,.ticket-card.tooltip-below:focus-visible::after,.ticket-card.tooltip-below:focus-visible::before{transform:translate(-50%,0)}
