/* P19-8CR2: complete descriptions remain inside their own product cards. */
.app-card .tsz-description-wrapper{min-width:0;display:flex;flex-direction:column;gap:13px;margin:0}
.app-card .tsz-description-intro,.app-card .tsz-description-short{
  display:block !important;-webkit-line-clamp:unset !important;line-clamp:unset !important;
  -webkit-box-orient:initial !important;overflow:visible !important;min-height:0 !important;
  margin:0;color:#d1d7dd;line-height:1.7;font-size:clamp(13px,1.1vw,14px);
  overflow-wrap:anywhere;white-space:pre-line;text-align:start;
}
.app-card .tsz-description-details{border:1px solid rgba(173,192,211,.23);border-radius:13px;background:rgba(16,23,31,.45);min-width:0;overflow:hidden}
.app-card .tsz-description-trigger{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:45px;padding:11px 14px;cursor:pointer;user-select:none;color:#dbe8f8;font-size:13px;font-weight:650;line-height:1.4}
.app-card .tsz-description-trigger::-webkit-details-marker{display:none}
.app-card .tsz-description-trigger::marker{content:''}
.app-card .tsz-description-trigger:hover{background:rgba(124,161,205,.12)}
.app-card .tsz-description-trigger:focus-visible{outline:2px solid #a8cefa;outline-offset:-3px;border-radius:12px}
.app-card .tsz-description-chevron{display:block;flex:none;width:9px;height:9px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);transition:transform .22s ease;margin-inline-end:4px;color:#b0c4d8}
.app-card .tsz-description-details[open] .tsz-description-chevron{transform:rotate(225deg)}
.app-card .tsz-description-details[open] .tsz-description-trigger{border-bottom:1px solid rgba(173,192,211,.18);background:rgba(124,161,205,.075)}
.app-card .tsz-description-content{padding:16px 15px 18px;max-height:min(67vh,35rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;color:#e0e5ec;overflow-wrap:anywhere;}
.app-card .tsz-description-paragraph{font-size:13px;line-height:1.8;margin:0 0 1.1em;white-space:pre-line;text-align:start;}
.app-card .tsz-description-paragraph:last-child{margin-bottom:0}
.app-card .tsz-description-content:focus-visible{outline:2px solid #a8cefa}
@media(max-width:620px){.app-card .tsz-description-content{max-height:min(62vh,30rem);padding:13px 12px 15px}}
@media(prefers-reduced-motion:reduce){.app-card .tsz-description-chevron{transition:none}}

/* P19-8CR3: discrete line-by-line reading controls for expanded descriptions. */
.app-card .tsz-description-controls{display:grid;grid-template-columns:minmax(42px,1fr) minmax(0,2.2fr) minmax(42px,1fr);align-items:center;gap:8px;padding:9px 12px 11px;border-top:1px solid rgba(173,192,211,.18);background:rgba(21,30,43,.95);direction:ltr}
.app-card .tsz-description-controls[hidden]{display:none !important}
.app-card .tsz-description-line-button{display:flex;align-items:center;justify-content:center;min-height:43px;width:100%;border:1px solid rgba(169,197,230,.38);border-radius:10px;background:rgba(93,131,180,.14);color:#e0ecfb;font:600 21px/1 system-ui,-apple-system,BlinkMacSystemFont,sans-serif;cursor:pointer;touch-action:manipulation;transition:background-color .14s ease,border-color .14s ease}
.app-card .tsz-description-line-button:hover:not(:disabled){background:rgba(114,154,212,.29);border-color:rgba(178,213,251,.72)}
.app-card .tsz-description-line-button:active:not(:disabled){background:rgba(125,178,236,.37)}
.app-card .tsz-description-line-button:focus-visible{outline:2px solid #bbdafa;outline-offset:2px}
.app-card .tsz-description-line-button:disabled{opacity:.32;cursor:default}
.app-card .tsz-description-line-label{color:#b7c9df;font-size:12px;font-weight:600;line-height:1.35;text-align:center;overflow-wrap:anywhere}
@media(max-width:420px){.app-card .tsz-description-controls{grid-template-columns:minmax(46px,1fr) minmax(0,2fr) minmax(46px,1fr);gap:7px;padding:8px 9px 10px}}
@media(prefers-reduced-motion:reduce){.app-card .tsz-description-line-button{transition:none}}


/* P19-8CR4: align the inline "read full overview" control at the foot
   of every closed card, independently of the length of its introduction.
   The accordion stays inside its card; no additional DOM or observers. */
.app-card > .tsz-description-wrapper {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.app-card > .tsz-description-wrapper > .tsz-description-details:not([open]) {
  margin-top: auto;
}
/* Keep the remaining space allocation stable when details are opened.
   Do not hide or clamp original overview text. */
.app-card > .tsz-description-wrapper > .tsz-description-details[open] {
  margin-top: 0;
}
