/* One status vocabulary across rows, lists, boards and ticket details. */
:root{--ticket-open:#97560b;--ticket-open-bg:#fff1d6;--ticket-progress:#1d58a1;--ticket-progress-bg:#e9f1ff;--ticket-resolved:#176349;--ticket-resolved-bg:#e5f5ed;--ticket-closed:#63517d;--ticket-closed-bg:#eee9f6}
.ticket-status{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:6px;padding:5px 9px;line-height:1.4;font-size:12px;font-weight:700;white-space:nowrap}.ticket-status .icon{width:14px;height:14px}.ticket-status.status-open{color:var(--ticket-open);background:var(--ticket-open-bg);border-color:#e8cc93}.ticket-status.status-in_progress{color:var(--ticket-progress);background:var(--ticket-progress-bg);border-color:#b8cdee}.ticket-status.status-resolved{color:var(--ticket-resolved);background:var(--ticket-resolved-bg);border-color:#afd9c4}.ticket-status.status-closed{color:var(--ticket-closed);background:var(--ticket-closed-bg);border-color:#d1c5e1}
.ticket-status-tabs{display:flex;flex-wrap:wrap;gap:8px}.ticket-status-tabs button{display:flex;align-items:center;gap:7px;min-height:42px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--muted);font-size:12px;font-weight:650}.ticket-status-tabs button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}.ticket-status-dot{width:8px;height:8px;flex:none;border-radius:50%;background:currentColor}.ticket-status-tabs .status-open{color:var(--ticket-open)}.ticket-status-tabs .status-in_progress{color:var(--ticket-progress)}.ticket-status-tabs .status-resolved{color:var(--ticket-resolved)}.ticket-status-tabs .status-closed{color:var(--ticket-closed)}
.ticket-filter-details>summary{cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:650;font-size:13px;min-height:44px;list-style:none}.ticket-filter-details>summary::-webkit-details-marker{display:none}.ticket-filter-details>summary:after{content:'+';margin-left:auto;font-size:20px;color:var(--muted)}.ticket-filter-details[open]>summary:after{content:'−'}.ticket-filter-details .ticket-filters{padding-top:14px}.ticket-filter-count{font-size:11px;color:var(--muted);font-weight:450}.ticket-view-tools{align-items:center;gap:8px}.ticket-view-tools>button{min-height:40px;padding:8px 12px;border-radius:7px;font-size:12px}.ticket-view-tools [aria-pressed=true]{box-shadow:none;background:#eaf0f5;color:#123b59}.ticket-status-guide{font-size:12px;color:var(--muted)}.ticket-status-guide summary{cursor:pointer;min-height:32px;line-height:32px;font-weight:600}.ticket-status-guide>div{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:10px}.ticket-status-guide p{margin:8px 0 0;line-height:1.6}
.ticket-list{padding:20px;display:grid;gap:12px}.ticket-list-row{padding:20px;border:1px solid var(--line);border-radius:12px;background:white;display:grid;gap:14px}.ticket-list-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.ticket-select-label{display:flex;align-items:center;gap:10px;min-height:40px;font-size:12px;color:var(--muted)}.ticket-select-label input{flex:none}.ticket-list-title{font-size:16px;font-weight:700;line-height:1.5;text-align:left;padding:0!important;color:var(--ink);overflow-wrap:anywhere}.ticket-list-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.ticket-list-meta div{min-width:0}.ticket-list-meta dt{font-size:11px;color:var(--muted);margin-bottom:3px}.ticket-list-meta dd{font-size:13px;font-weight:550;overflow-wrap:anywhere;margin:0}.ticket-list-actions{display:flex;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid #eeece5;padding-top:12px}.ticket-list-actions button{min-height:42px;font-size:12px}.ticket-list-row[data-status=open]{background:#fffefa}.ticket-list-row[data-status=in_progress]{border-color:#c5d7ef}.ticket-list-row[data-status=resolved]{border-color:#bedbcf}.ticket-list-row[data-status=closed]{border-color:#d9cfe4}.ticket-lane[data-status=open]{background:#fdf7eb;border-color:#e8d7b4}.ticket-lane[data-status=in_progress]{background:#eff4fc;border-color:#c9d8ef}.ticket-lane[data-status=resolved]{background:#eef7f2;border-color:#c1dfd1}.ticket-lane[data-status=closed]{background:#f4f0f8;border-color:#d9d0e4}.ticket-lane-heading h2{display:flex;align-items:center;gap:8px}.ticket-lane[data-status=open] h2{color:var(--ticket-open)}.ticket-lane[data-status=in_progress] h2{color:var(--ticket-progress)}.ticket-lane[data-status=resolved] h2{color:var(--ticket-resolved)}.ticket-lane[data-status=closed] h2{color:var(--ticket-closed)}.ticket-lane{scroll-snap-align:start}.ticket-board{scroll-snap-type:x proximity}.ticket-card{cursor:default}.ticket-card[draggable=true]{cursor:grab}.ticket-card select{min-height:42px}.ticket-detail-status{display:flex;gap:10px;flex-wrap:wrap}.ticket-draft-status{font-size:12px;display:flex;align-items:center;gap:10px;color:var(--muted)}.ticket-history-details{padding-top:16px;border-top:1px solid var(--line)}.ticket-history-details>summary{cursor:pointer;font-weight:650;min-height:44px;line-height:44px}.ticket-bulk{position:sticky;bottom:10px;z-index:3;border:1px solid #d7bd80;box-shadow:0 6px 20px #031e3910}.ticket-bulk>button{min-height:44px}.ticket-list-row.ticket-updated,.ticket-card.ticket-updated{animation:ticket-updated 600ms ease-out}@keyframes ticket-updated{from{box-shadow:0 3px 14px #b3934c44}to{box-shadow:0 1px 4px #031e3906}}
.mobile-app-header,.mobile-bottom-nav{display:none}.mobile-menu{padding:24px;border:0;width:min(360px,calc(100% - 28px));height:100dvh;max-height:100dvh;margin:0 0 0 auto;max-width:none;background:#fffdf8;color:var(--ink);box-shadow:-8px 0 30px #031e3926;overflow-y:auto}.mobile-menu::backdrop{background:#031e3980}.mobile-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:16px}.mobile-menu-heading h2{margin:0;font-size:19px}.mobile-menu-heading button{min-height:44px}.mobile-menu-links{display:grid;gap:5px;margin:20px 0}.mobile-menu-links button{display:flex;align-items:center;gap:12px;min-height:50px;padding:12px;border-radius:8px;text-align:left;font-size:13px;color:var(--ink)}.mobile-menu-links button>.icon:last-child{margin-left:auto;width:14px;color:var(--muted)}.mobile-menu-links button[aria-current=page]{background:#f3e5c7;color:#604514}.mobile-menu-account{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:20px}.mobile-menu-account button{text-align:left;min-height:44px}.mobile-menu-account>strong{overflow-wrap:anywhere;padding:8px 6px}.mobile-menu-open{overflow:hidden}
@media(max-width:768px){.app-shell>.sidebar{display:none}.workspace>.topbar{display:none}.mobile-app-header{display:flex;position:sticky;top:0;z-index:8;background:var(--ink);color:white;min-height:68px;padding:10px 16px;justify-content:space-between;align-items:center;gap:12px}.mobile-brand{display:flex;align-items:center;gap:10px;min-width:0}.mobile-brand img{object-fit:contain;flex:none}.mobile-brand>div{display:grid;gap:2px;min-width:0}.mobile-brand strong{font-size:15px}.mobile-brand span{font-size:10px;color:#d3deea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}.mobile-app-header button{min-width:64px;min-height:44px;display:flex;gap:8px;align-items:center;justify-content:center;border:1px solid #6e8294;border-radius:8px;color:#fff;font-size:12px}.mobile-app-header button .icon{width:16px}.mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;z-index:9;border-top:1px solid #dce0e3;background:#fffdf8;padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.mobile-bottom-nav button{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:10px;padding:5px;border-radius:8px;color:#596a7b}.mobile-bottom-nav .icon{width:20px;height:20px}.mobile-bottom-nav button.active{background:#f1e7d1;color:#674a13;font-weight:750}.workspace{padding-bottom:calc(80px + env(safe-area-inset-bottom))}#workspace-main{padding-top:24px}.page-heading{margin-bottom:22px}.page-date{font-size:10px}.page-heading h1{font-size:26px}.ticket-tools{padding:16px;gap:12px}.ticket-status-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ticket-status-tabs button{min-height:42px;text-align:left;justify-content:flex-start}.ticket-status-tabs button:first-child{grid-column:1/-1}.ticket-list{padding:12px;gap:12px}.ticket-list-row{padding:16px}.ticket-view-tools>button{flex:1;white-space:nowrap;min-height:44px}.ticket-status-guide>div{grid-template-columns:1fr}.ticket-filters>label{flex:1 1 calc(50% - 12px);min-width:0}.ticket-filters select{min-height:44px;font-size:14px}.ticket-check{flex:1 1 100%!important}.ticket-bulk{bottom:80px;max-height:55dvh;overflow-y:auto}.ticket-board{grid-template-columns:repeat(4,minmax(280px,85vw));padding:12px;gap:12px}.ticket-board-hint{font-size:12px}.ticket-lane{padding:12px}.ticket-list-meta{gap:10px}.editor-dialog .detail-description{max-height:160px;overflow:auto}.editor-dialog .dialog-actions{position:sticky;bottom:0;z-index:2;background:#fffdf8;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.editor-dialog .dialog-actions button{min-height:44px}.ticket-list-row [data-ticket-select]{width:20px;height:20px;min-height:20px}.list-toolbar{flex-wrap:wrap;padding:16px}.list-toolbar .search-label{flex-basis:100%;max-width:none}.list-toolbar>label+label{flex:1;min-width:0}.list-toolbar #filter-input{min-height:44px}.ticket-list-title{font-size:16px!important}.ticket-filter-details>summary{min-height:48px}}
@media(prefers-reduced-motion:reduce){.ticket-list-row.ticket-updated,.ticket-card.ticket-updated{animation:none}.mobile-menu{transform:none!important}.mobile-bottom-nav button{transition:none!important}}

.ticket-priority-urgent{color:#a32929;font-weight:750!important}.ticket-priority-high{color:#8a520c;font-weight:650!important}.legend-dot.status-open{background:var(--ticket-open)}.legend-dot.status-in_progress{background:var(--ticket-progress)}.legend-dot.status-resolved{background:var(--ticket-resolved)}.legend-dot.status-closed{background:var(--ticket-closed)}.ring-segment.status-open{stroke:var(--ticket-open)}.ring-segment.status-in_progress{stroke:var(--ticket-progress)}.ring-segment.status-resolved{stroke:var(--ticket-resolved)}.ring-segment.status-closed{stroke:var(--ticket-closed)}
@media(max-width:768px){.ticket-status-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.ticket-status-tabs button:first-child{grid-column:auto}.ticket-status-tabs button{font-size:11px;padding:8px 9px}.ticket-management .list-toolbar>label+label{display:none}.ticket-board-hint{display:block}.ticket-list-actions button{font-size:12px}.mobile-menu-links .icon{flex:none}.mobile-menu-links span{min-width:0}}
@media(hover:hover) and (pointer:fine){.ticket-list-row:hover{border-color:#acb8c2}.ticket-status-tabs button:not([aria-pressed=true]):hover{background:#f2f4f6}.mobile-menu-links button:hover{background:#f0e9d8}}
@media(prefers-reduced-motion:no-preference){.mobile-bottom-nav button,.ticket-status-tabs button{transition:background-color 150ms ease,color 150ms ease,transform 150ms cubic-bezier(.23,1,.32,1)}.mobile-bottom-nav button:active{transform:scale(.96)}}

.ticket-bulk-details{flex-basis:100%}.ticket-bulk-details>summary{cursor:pointer;min-height:36px;font-size:13px;font-weight:650}.ticket-bulk-fields{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding-top:10px}.ticket-bulk-fields>label{display:grid;gap:6px;flex:1;min-width:130px;font-size:12px}.ticket-bulk-fields select{min-height:44px}.ticket-bulk-fields>button{min-height:44px}.ticket-bulk>strong{flex-basis:auto;flex:1}.ticket-bulk>button{min-height:36px}
@media(max-width:768px){.ticket-bulk{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));max-height:52dvh;z-index:7;padding:12px 14px;gap:4px 10px}.ticket-bulk-fields>label{min-width:calc(50% - 12px)}.ticket-bulk-details>summary{min-height:44px;line-height:44px}.ticket-bulk-fields>button{width:100%}.ticket-has-selection .ticket-list{padding-bottom:180px}.ticket-has-selection:has(.ticket-bulk-details[open]) .ticket-list{padding-bottom:400px}}

.ticket-filter-utilities{display:flex;gap:14px;margin-top:12px}.ticket-filter-utilities button{min-height:44px}.ticket-select-label{min-height:44px}
@media(max-width:768px){.app-shell{display:block}.toast{bottom:calc(88px + env(safe-area-inset-bottom));max-width:calc(100% - 32px)}.ticket-management .list-toolbar{flex-wrap:nowrap;gap:10px}.ticket-management .list-toolbar .search-label{flex:1;min-width:0}.ticket-management .list-toolbar #result-count{flex:none;font-size:11px;margin-left:0}.ticket-filter-utilities{justify-content:space-between}.ticket-filter-utilities button{flex:1}}

.ticket-detail-heading{display:grid;gap:10px;margin-bottom:18px}
.ticket-detail-heading h2{margin:0;overflow-wrap:anywhere}
.ticket-detail-page{display:grid;gap:16px}
.ticket-detail-page h3{font-size:15px;margin:0}
.ticket-detail-page>.detail-description{margin:0;max-height:280px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.ticket-detail-page>.ticket-list-meta{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ticket-detail-page>.text-button{justify-self:start;text-align:left}
.ticket-list-row{gap:10px}
.ticket-list-top .badge{margin-left:auto}
.ticket-management .list-toolbar>label:has(#filter-input){display:none}
.ticket-management .ticket-status-tabs{display:flex;flex-wrap:wrap}
.ticket-management .ticket-status-tabs button{flex:0 1 auto}
@media(prefers-reduced-motion:no-preference){.ticket-detail-page{animation:appear .15s ease}}
