/* Tickets (psa.js): the list, the ticket page, the sheets, the sections on other pages and Books "Unbilled time". Foundation language: hairline rules, mono for refs and dates,
   status as words (never colour alone). App tokens only, so both themes work. Targets are 44px on a phone. */
.ps-bar{margin-bottom:8px}.ps-search{min-width:200px}
.ps-pad{padding:12px 6px}
.ps-held{margin:0 0 10px}
.ps-bulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border:1px solid var(--bd2);background:var(--sel);border-radius:var(--r);padding:6px 10px;margin:0 0 8px}
.ps-list{border-top:1px solid var(--bd)}
.ps-row{display:grid;grid-template-columns:30px 70px minmax(0,1fr) 64px 150px 190px 36px;column-gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--bd);cursor:pointer;min-height:52px}
.ps-row:hover{background:var(--sf2)}
.ps-row:focus-visible,.ps-row.cur{outline:2px solid var(--acc);outline-offset:-2px}
.ps-selw{display:flex;align-items:center;justify-content:center;width:30px;height:44px;cursor:pointer}
.ps-ref{font-family:var(--mono);font-size:12px;color:var(--ink2)}
.ps-main{display:flex;flex-direction:column;min-width:0}
.ps-subj{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-meta{font-size:12px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-pri{font-size:11px;font-weight:700;letter-spacing:.04em}
.ps-st{font-size:12.5px}
.ps-sla{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-sla b{font-size:11px;letter-spacing:.04em}
.ps-sla-t{color:var(--ink2)}
.ps-asg{width:28px;height:28px;border-radius:50%;border:1px solid var(--bd2);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--ink2);justify-self:end}
.ps-asg i{font-style:normal;color:var(--ink3)}
.ps-empty{padding:18px 6px;border-bottom:1px solid var(--bd)}
/* the ticket page */
.ps-crumb{font-size:12px;color:var(--ink3);margin-bottom:2px}
.ps-title{overflow-wrap:anywhere}
.ps-slas{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 10px}
.ps-chip{border:1px solid var(--bd2);border-radius:var(--r);padding:3px 9px;font-size:12px}
.ps-chip b{letter-spacing:.03em}
.ps-ctl{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 12px}
.ps-ctl.ro span{border:1px solid var(--bd);padding:3px 9px;border-radius:var(--r)}
.ps-f{display:flex;flex-direction:column;gap:2px;min-width:160px}
.ps-f .lbl{font-size:11px;color:var(--ink3);text-transform:uppercase;letter-spacing:.04em}
.ps-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.ps-thread{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.ps-msg{border:1px solid var(--bd);background:var(--sf);border-radius:var(--r);padding:10px 12px;max-width:760px}
.ps-msg header{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-bottom:6px;font-size:12.5px}
.ps-msg time{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--ink3)}
.ps-kind{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--ink3)}
.ps-body{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.ps-msg.inbound{border-left:3px solid var(--bd2)}
.ps-msg.reply{border-left:3px solid var(--acc);background:color-mix(in srgb,var(--acc) 6%,var(--sf));margin-left:auto}
.ps-msg.reply .ps-kind{color:var(--acc)}
.ps-msg.note{border:1px dashed var(--warn);background:color-mix(in srgb,var(--warn) 9%,var(--sf))}
.ps-msg.note .ps-kind{color:var(--warn)}
.ps-msg.sys{border:0;background:transparent;padding:2px 0;font-size:12px;color:var(--ink3);display:flex;gap:10px}
.ps-att{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ps-pick{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:12.5px;min-height:32px}
.ps-splitbar{position:sticky;bottom:0;background:var(--sel);border:1px solid var(--bd2);padding:8px 12px;margin-bottom:12px}
.ps-comp{border:1px solid var(--bd2);background:var(--sf);border-radius:var(--r);padding:10px 12px;max-width:760px}
.ps-comp-h{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.ps-comp-h .seg{margin-right:auto}
.ps-to{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:6px 8px;align-items:center;margin-bottom:8px}
.ps-ta{width:100%;min-height:120px;resize:vertical;font:14px/1.5 var(--font);padding:8px 10px}
.ps-ta.note{border-color:var(--warn)}
.ps-comp-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.ps-hintline{margin-right:auto;font-size:12px}
.ps-prev{border:1px solid var(--bd2);background:var(--sf2);padding:8px 10px;margin-top:8px;font-size:13px}
.ps-prev.bad{border-color:var(--warn)}
.ps-prev mark{background:color-mix(in srgb,var(--warn) 30%,transparent);color:var(--ink);padding:0 2px}
.ps-side{display:flex;flex-direction:column;gap:12px}
.ps-card{border:1px solid var(--bd);background:var(--sf);border-radius:var(--r);padding:10px 12px}
.ps-card h3,.ps-sec h3{margin:0 0 6px;font:600 13px var(--font)}
.ps-card h3 .i3{font-weight:400;margin-left:6px}
.ps-card h4{margin:10px 0 4px;font:600 11px var(--font);text-transform:uppercase;letter-spacing:.05em;color:var(--ink3)}
.ps-cname{font-weight:600;margin-bottom:4px}
.ps-li{padding:2px 0;font-size:13px}
.ps-devrow{display:flex;gap:8px;align-items:center;min-height:30px;font-size:13px}
.ps-devrow .i3{margin-left:auto}
.ps-timer{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.ps-clock{font-family:var(--mono);font-size:18px}
.ps-tadd{display:grid;grid-template-columns:78px 1fr;gap:6px;margin-bottom:8px}
.ps-tadd input[data-ps-tnote]{grid-column:1/-1}
.ps-tl .ps-te{display:grid;grid-template-columns:auto 1fr auto auto;gap:2px 8px;padding:5px 0;border-top:1px solid var(--bd);font-size:12.5px;align-items:center}
.ps-te .ps-te-n{grid-column:1/-1;color:var(--ink2)}
.ps-hist summary{cursor:pointer;color:var(--ink2);font-size:12.5px;min-height:30px;display:flex;align-items:center}
.ps-ev{font-size:12px;padding:2px 0;color:var(--ink2)}
.ps-ev time{font-family:var(--mono);color:var(--ink3);margin-right:6px}
/* sheets */
.ps-sheet-wrap{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center}
.ps-scrim{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.ps-sheet{position:relative;background:var(--sf);border:1px solid var(--bd2);border-radius:var(--r);width:min(520px,92vw);max-height:88vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.ps-sheet.wide{width:min(720px,94vw)}
.ps-sheet header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--bd);position:sticky;top:0;background:var(--sf)}
.ps-sheet h2{margin:0;font:600 15px var(--font)}
.ps-sheet-b{padding:12px 14px 14px}
.ps-form{display:flex;flex-direction:column;gap:6px}
.ps-form .sel,.ps-menu .sel{width:100%}
.ps-form .lbl,.ps-menu .lbl{margin-top:6px;font-size:12px;color:var(--ink2)}
.ps-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ps-sheet-f{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.ps-menu{display:flex;flex-direction:column;gap:8px}
.ps-mlist{max-height:46vh;overflow:auto;border:1px solid var(--bd)}
.ps-mrow{display:flex;gap:8px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--bd);min-height:40px}
.ps-held-i{border:1px solid var(--bd);padding:8px 10px;margin-bottom:8px}
.ps-hsub{font-weight:600}
/* other pages */
.ps-sec{border:1px solid var(--bd);background:var(--sf);border-radius:var(--r);padding:10px 12px;margin:0 0 14px}
.ps-sec-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ps-sec-h h3{margin:0}.ps-sec-h .btn{margin-left:auto}
.ps-attn{margin:0 0 14px}
.ps-mini{display:grid;grid-template-columns:70px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:6px 2px;border-top:1px solid var(--bd);color:inherit;text-decoration:none;min-height:36px}
.ps-mini:hover{background:var(--sf2)}
.ps-mini-s{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-more{display:inline-block;margin-top:6px;font-size:12.5px}
/* Books: unbilled time */
.ps-bgroup{margin-bottom:12px}
.ps-brow{display:grid;grid-template-columns:90px minmax(0,1fr) 120px 70px 90px 90px;gap:10px;padding:5px 0;border-top:1px solid var(--bd);font-size:13px;align-items:center}
.ps-await{margin-bottom:12px}
.ps-rates{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:1100px){.ps-grid{grid-template-columns:minmax(0,1fr)}.ps-row{grid-template-columns:30px 66px minmax(0,1fr) 150px 36px}.ps-pri,.ps-st{display:none}}
@media (max-width:719px){
  .ps-row{grid-template-columns:30px minmax(0,1fr) 36px;grid-template-areas:"s m a" ". r r" ". l l";row-gap:2px;padding:10px 6px;min-height:64px}
  .ps-row .ps-selw{grid-area:s}.ps-row .ps-main{grid-area:m}.ps-row .ps-asg{grid-area:a}.ps-row .ps-ref{grid-area:r;display:inline}.ps-row .ps-sla{grid-area:l}
  .ps-subj{white-space:normal}
  .ps-sheet-wrap{align-items:flex-end}
  .ps-sheet{width:100vw;max-height:92vh;border-radius:12px 12px 0 0;padding-bottom:env(safe-area-inset-bottom)}
  .ps-sheet.wide{width:100vw}
  .ps-to{grid-template-columns:auto minmax(0,1fr)}
  .ps-two{grid-template-columns:1fr}
  .ps-f{min-width:calc(50% - 8px);flex:1}
  .ps-comp .btn,.ps-sheet .btn,.ps-timer .btn,.ps-tadd .btn,.ps-form .sel,.ps-comp .seg button{min-height:44px}
  .ps-msg,.ps-comp{max-width:none}
  .ps-brow{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"t t t" "d u m" "r . a";gap:2px 10px;padding:8px 0}
  .ps-brow>:nth-child(1){grid-area:d}.ps-brow>:nth-child(2){grid-area:t;overflow-wrap:anywhere}.ps-brow>:nth-child(3){grid-area:u;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-brow>:nth-child(4){grid-area:m;text-align:right}.ps-brow>:nth-child(5){grid-area:r}.ps-brow>:nth-child(6){grid-area:a;text-align:right}
  .ps-brow a{display:inline-block;padding:13px 6px 13px 0;margin:-13px 0}
  .ps-await .btn{margin-top:6px}
  .ps-mini{grid-template-columns:62px minmax(0,1fr) auto}.ps-mini>span:last-child{display:none}
  .ps-tadd{grid-template-columns:90px 1fr}
}
