.ticket-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 16px; border-bottom:1px solid var(--line); }
.ticket-heading > .btn { flex-shrink:0; }
.ticket-tabs { flex-wrap:wrap; gap:20px; border:0; }
.ticket-tabs .tab { min-height:48px; }
.ticket-tabs .tab > span { margin-left:5px; color:var(--ink-muted); font-variant-numeric:tabular-nums; }
.ticket-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:14px 16px; border-bottom:1px solid var(--line); }
.ticket-toolbar select { width:auto; min-width:110px; height:34px; padding:0 28px 0 10px; border:1px solid var(--control-line); border-radius:var(--radius); background:var(--surface); font:inherit; font-size:12px; }
.ticket-table { font-size:12px; }
.ticket-table .ticket-title { display:block; max-width:360px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:left; }
.ticket-sub { display:block; margin-top:5px; color:var(--ink-muted); font-size:11px; line-height:1.5; }
.ticket-overdue { color:var(--warning) !important; }
.ticket-state { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; min-height:180px; padding:28px 20px; color:var(--ink-muted); font-size:12px; text-align:center; }
dialog.tickets-dialog { width:760px; max-width:calc(100vw - 32px); }
dialog.ticket-detail-dialog { width:860px; }
.tickets-dialog .dialog-body { font-size:12px; }
.ticket-section + .ticket-section, .ticket-form-grid + .ticket-section { margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.ticket-section > h3 { margin:0 0 14px; color:var(--ink-secondary); font-size:13px; font-weight:600; }
.ticket-note { margin:8px 0 0; color:var(--ink-muted); font-size:12px; line-height:1.7; }
.ticket-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 22px; }
.ticket-field { display:flex; flex-direction:column; gap:8px; min-width:0; color:var(--ink-secondary); font-size:12px; }
.ticket-field-wide { grid-column:1/-1; }
.ticket-field input:not([type="checkbox"]), .ticket-field select, .ticket-field textarea, .ticket-option-search input { width:100%; min-width:0; padding:8px 10px; border:1px solid var(--control-line); border-radius:var(--radius); background:var(--surface); color:var(--ink); font:inherit; font-size:12px; }
.ticket-field textarea { resize:vertical; line-height:1.7; }
.ticket-field input:disabled, .ticket-field select:disabled { background:var(--surface-muted); color:var(--ink-muted); }
.ticket-readonly { display:block; padding:8px 0; color:var(--ink-muted); line-height:1.5; }
.ticket-option-search { display:flex; align-items:center; gap:8px; margin-bottom:14px; }
.ticket-option-search input { flex:1; }
.ticket-option-search > .btn { flex-shrink:0; }
.ticket-people { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; max-height:174px; overflow-y:auto; padding:12px; border:1px solid var(--line); border-radius:var(--radius); }
.ticket-people label { display:flex; align-items:center; flex-wrap:wrap; gap:5px 7px; min-width:0; font-size:12px; }
.ticket-people input { width:14px; height:14px; margin:0; accent-color:var(--primary); }
.ticket-people small { color:var(--ink-muted); font-size:11px; }
.ticket-people > p { margin:0; color:var(--ink-muted); font-size:12px; }
.ticket-collaborator-picker { margin-top:16px; border:1px solid var(--line); border-radius:var(--radius); }
.ticket-collaborator-picker > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 12px; color:var(--ink-secondary); font-size:12px; list-style:none; cursor:pointer; }
.tickets-dialog .ticket-collaborator-picker > summary { margin:0; }
.ticket-collaborator-picker > summary::-webkit-details-marker { display:none; }
.ticket-collaborator-picker > summary:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.ticket-collaborator-summary { display:inline-flex; align-items:center; gap:5px; color:var(--ink-muted); font-size:11px; white-space:nowrap; }
.ticket-collaborator-summary strong { color:var(--ink-secondary); font-weight:600; font-variant-numeric:tabular-nums; }
.ticket-collaborator-summary svg { width:14px; height:14px; margin-left:5px; }
.ticket-collaborator-picker[open] .ticket-collaborator-summary svg { transform:rotate(180deg); }
.ticket-collaborator-picker .ticket-people { border:0; border-top:1px solid var(--line); border-radius:0; gap:6px 16px; padding:10px 12px; }
.ticket-collaborator-picker .ticket-people label { display:grid; grid-template-columns:14px minmax(0,1fr); align-items:start; gap:9px; padding:5px 0; }
.ticket-collaborator-picker .ticket-people input { margin-top:2px; }
.ticket-person-copy { display:flex; flex-direction:column; gap:4px; min-width:0; overflow-wrap:anywhere; }
.ticket-person-copy strong { color:var(--ink-secondary); font-size:12px; font-weight:500; line-height:1.5; }
.ticket-person-copy small { line-height:1.5; }
dialog.ticket-create-dialog { width:780px; max-height:calc(100dvh - 48px); }
dialog.ticket-create-dialog[open] { display:flex; flex-direction:column; }
.ticket-create-dialog .dialog-head, .ticket-create-dialog .dialog-footer { flex:0 0 auto; }
.ticket-create-dialog .dialog-body { flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; padding:20px 24px; }
.ticket-create-section > h3, .ticket-create-section-head > h3 { margin:0 0 12px; color:var(--ink-secondary); font-size:12px; font-weight:600; line-height:1.5; }
.ticket-create-section + .ticket-create-section { margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }
.ticket-create-dialog .ticket-form-grid { gap:14px 16px; }
.ticket-create-dialog .ticket-field { gap:6px; }
.ticket-create-dialog .ticket-field input, .ticket-create-dialog .ticket-field select { height:34px; padding-top:6px; padding-bottom:6px; }
.ticket-create-dialog .ticket-field textarea { min-height:88px; }
.ticket-create-context { display:grid; grid-template-columns:minmax(0,2fr) minmax(120px,1fr) minmax(110px,.9fr); gap:14px 16px; }
.ticket-stage-preview { display:flex; align-items:center; min-height:34px; padding:6px 10px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface-muted); color:var(--ink-secondary); line-height:1.6; }
.ticket-create-deadline { margin-top:14px; }
.ticket-create-section-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 16px; margin-bottom:14px; }
.ticket-create-section-head > h3 { margin:0; flex:0 0 auto; }
.ticket-create-section-head .ticket-option-search { width:300px; max-width:100%; margin:0; }
.ticket-create-section-head .ticket-option-search input { padding:7px 9px; }
.ticket-create-section-head > .ticket-note { width:100%; margin:0; }
.ticket-create-dialog .ticket-assignment-design { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ticket-error { margin:16px 0 10px; color:var(--error); font-size:12px; line-height:1.7; }
.ticket-detail-heading { margin-bottom:24px; }
.ticket-detail-heading > h3 { margin:0 0 16px; color:var(--ink); font-size:16px; line-height:1.6; font-weight:600; overflow-wrap:anywhere; }
.ticket-action-bar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.ticket-prose { margin:0; color:var(--ink-secondary); font-size:12px; line-height:1.85; white-space:pre-wrap; overflow-wrap:anywhere; }
.ticket-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; margin:0 0 14px; }
.ticket-facts > div { min-width:0; }
.ticket-facts dt { margin-bottom:7px; color:var(--ink-muted); font-size:11px; }
.ticket-facts dd { margin:0; color:var(--ink-secondary); line-height:1.7; overflow-wrap:anywhere; }
.ticket-events { margin:0; padding:0; list-style:none; }
.ticket-events > li { padding:14px 0; border-bottom:1px solid var(--line-soft); }
.ticket-events > li:first-child { padding-top:0; }
.ticket-events > li:last-child { border-bottom:0; }
.ticket-event-head { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; margin-bottom:8px; color:var(--ink-muted); font-size:11px; }
.ticket-event-head > strong { color:var(--ink-secondary); font-size:12px; font-weight:600; }
.ticket-event-head time { margin-left:auto; font-variant-numeric:tabular-nums; }
.ticket-event-pages { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:12px; color:var(--ink-muted); font-size:12px; }
.ticket-reply { margin-top:18px; }
.ticket-reply > label { display:flex; flex-direction:column; gap:8px; color:var(--ink-secondary); font-size:12px; }
.ticket-reply textarea { width:100%; padding:10px; border:1px solid var(--control-line); border-radius:var(--radius); font:inherit; font-size:12px; line-height:1.7; resize:vertical; }
.ticket-reply > .btn { margin-top:10px; }
.ticket-attachments { margin:0; padding:0; list-style:none; }
.ticket-attachments > li { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 12px; padding:9px 0; color:var(--ink-muted); font-size:12px; }
.ticket-attachments a { max-width:100%; color:var(--primary); overflow-wrap:anywhere; }
.ticket-attachments small { color:var(--ink-muted); font-size:11px; }
.ticket-upload { margin-top:16px; }
.ticket-upload > label { display:flex; flex-direction:column; align-items:flex-start; gap:8px; color:var(--ink-secondary); font-size:12px; }
.ticket-upload input { max-width:100%; font-size:12px; }
.ticket-upload > .btn { margin-top:10px; }
.ticket-upload progress { display:block; width:100%; height:8px; margin:12px 0; accent-color:var(--primary); }
.ticket-upload progress[hidden], .ticket-error[hidden] { display:none; }
@media (max-width:700px) {
 .ticket-heading { align-items:flex-start; flex-direction:column; gap:0; padding-bottom:12px; }
 .ticket-heading > .btn { margin-top:8px; }
 .ticket-toolbar .search-box { width:100%; }
 .ticket-table .ticket-title { max-width:220px; }
 .ticket-form-grid, .ticket-facts { grid-template-columns:1fr; }
 .ticket-people { grid-template-columns:1fr; }
 .ticket-event-head time { width:100%; margin-left:0; }
 .tickets-dialog .dialog-body { padding:18px 16px; }
 .ticket-create-context { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ticket-create-context > .ticket-field:first-child { grid-column:1/-1; }
 .ticket-create-dialog .ticket-assignment-design { grid-template-columns:1fr; }
 .ticket-create-section-head .ticket-option-search { width:100%; }
}
