:root{
  --ink:#1f2a28;
  --paper:#fbfaf7;
  --paper-line:#e4ded0;
  --teal:#0f766e;
  --teal-dark:#0b544e;
  --red:#be123c;
  --muted:#5b6462;
  --radius:10px;
  --font-sans:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  line-height:1.55;
}
.ts-skip{position:absolute;left:-999px;top:0;background:var(--teal);color:#fff;padding:.6em 1em;z-index:1000;}
.ts-skip:focus{left:8px;top:8px;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--teal-dark);}
.ts-wrap{max-width:900px;margin:0 auto;padding:0 16px;}

/* header */
.ts-site-header{border-bottom:3px solid var(--teal);background:var(--paper);}
.ts-header-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:12px;}
.ts-brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:700;}
.ts-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--teal);color:#fff;font-family:var(--font-mono);font-weight:700;}
.ts-brand-name{font-size:1.1rem;}
.ts-nav ul{display:flex;gap:16px;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.ts-nav a{text-decoration:none;color:var(--ink);font-weight:500;}
.ts-nav a:hover{color:var(--teal);}

/* hero + tool */
.ts-hero{padding:22px 16px 10px;}
.ts-h1{font-size:1.5rem;line-height:1.2;margin:0 0 10px;}
.ts-h1-sub{display:block;font-size:1rem;font-weight:500;color:var(--muted);margin-top:2px;}
.ts-lede{font-size:1rem;color:var(--ink);margin:0 0 16px;max-width:68ch;}

.ts-tool{background:#fff;border:1px solid var(--paper-line);border-radius:var(--radius);padding:14px;box-shadow:0 1px 0 rgba(0,0,0,.03);}
.ts-tool-controls{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end;}
.ts-field-group{display:flex;gap:12px;}
.ts-radio{font-size:.92rem;display:flex;align-items:center;gap:4px;}
.ts-field{display:flex;flex-direction:column;gap:4px;min-width:120px;}
.ts-field label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;}
.ts-field input,.ts-field select{font-family:var(--font-mono);font-size:1rem;padding:8px 10px;border:1px solid var(--paper-line);border-radius:6px;background:var(--paper);}
.ts-btn{font-family:var(--font-sans);font-weight:600;border-radius:8px;border:2px solid transparent;padding:10px 18px;font-size:.95rem;cursor:pointer;}
.ts-btn-primary{background:var(--teal);color:#fff;}
.ts-btn-primary:hover{background:var(--teal-dark);}
.ts-btn-secondary{background:var(--paper);border-color:var(--teal);color:var(--teal-dark);}
.ts-btn-ghost{background:transparent;border-color:var(--paper-line);color:var(--ink);}
.ts-btn-copy{background:var(--paper);border-color:var(--paper-line);color:var(--ink);}
.ts-btn-copy.ts-copied{border-color:var(--teal);color:var(--teal-dark);}

.ts-tool-result{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:16px;}
.ts-result-figure{flex:1 1 220px;min-width:200px;}
.ts-result-figure svg{width:100%;height:auto;display:block;}
.ts-axis{stroke:var(--muted);stroke-width:1;}
.ts-curve-line{stroke:var(--ink);stroke-width:2;}
.ts-curve-shade{fill:var(--teal);opacity:.28;}
.ts-z-marker{stroke:var(--red);stroke-width:2;stroke-dasharray:3 3;}
.ts-result-value{flex:1 1 180px;min-width:180px;}
.ts-result-label{margin:0;font-size:.85rem;color:var(--muted);}
.ts-result-number{font-family:var(--font-mono);font-size:2.1rem;font-weight:600;color:var(--red);margin:2px 0 10px;}
.ts-tool-note{margin:14px 0 0;font-size:.82rem;color:var(--muted);}

.ts-feature-figure{margin:22px auto;}
.ts-inline-figure{margin:0 0 18px;}

/* sections */
.ts-section{padding:28px 16px;border-top:1px solid var(--paper-line);}
.ts-section h2{font-size:1.2rem;margin:0 0 12px;}
.ts-examples{padding-left:1.2em;}
.ts-examples li{margin-bottom:8px;}
code{font-family:var(--font-mono);background:#f1efe8;padding:1px 6px;border-radius:4px;}

.ts-table-scroll{overflow-x:auto;border:1px solid var(--paper-line);border-radius:var(--radius);}
table.ts-mini-table,table.ts-z-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.85rem;}
.ts-mini-table th,.ts-mini-table td{padding:8px 12px;border-bottom:1px solid var(--paper-line);text-align:center;}
.ts-z-table{min-width:720px;}
.ts-z-table th,.ts-z-table td{padding:6px 8px;text-align:right;border:1px solid var(--paper-line);}
.ts-z-table thead th{position:sticky;top:0;background:var(--teal);color:#fff;z-index:2;}
.ts-z-table th[scope="row"]{position:sticky;left:0;background:#f1efe8;color:var(--ink);z-index:1;text-align:left;}
.ts-z-table thead th:first-child{position:sticky;left:0;top:0;z-index:3;}
.ts-z-table td{cursor:pointer;}
.ts-z-table td:hover,.ts-z-table td:focus{background:#fde7ec;outline:none;}
.ts-cell-default,.ts-cell-active{background:var(--red)!important;color:#fff!important;font-weight:600;}
.ts-fineprint{font-size:.82rem;color:var(--muted);}

.ts-toc{background:#f1efe8;border-radius:var(--radius);padding:12px 16px;margin:0 0 16px;}
.ts-toc-title{margin:0 0 6px;font-weight:600;font-size:.85rem;text-transform:uppercase;color:var(--muted);}
.ts-toc ol{margin:0;padding-left:1.1em;}
.ts-toc-h3{margin-left:1em;list-style:circle;}

.ts-two-col{display:grid;grid-template-columns:1fr;gap:20px;}
@media(min-width:760px){.ts-two-col{grid-template-columns:1fr 1fr;}}
.ts-panel{background:#fff;border:1px solid var(--paper-line);border-radius:var(--radius);padding:16px;}
.ts-panel form{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.ts-panel label{font-size:.8rem;color:var(--muted);}
.ts-panel input[type=text],.ts-panel textarea{font-family:var(--font-sans);padding:8px 10px;border:1px solid var(--paper-line);border-radius:6px;width:100%;}
.ts-notes-list{list-style:none;margin:0 0 10px;padding:0;}
.ts-notes-list li{border-left:3px solid var(--teal);padding:4px 0 4px 10px;margin-bottom:10px;}
.ts-notice{background:#e7f5f0;border:1px solid var(--teal);padding:8px 12px;border-radius:6px;font-size:.9rem;}
.ts-hp{position:absolute!important;left:-9999px;}

.ts-faq details{border-bottom:1px solid var(--paper-line);padding:10px 0;}
.ts-faq summary{font-weight:600;cursor:pointer;}
.ts-faq p{margin:8px 0 0;color:var(--ink);}

.ts-crumbs{padding:12px 0 0;font-size:.82rem;color:var(--muted);}
.ts-crumbs ol{list-style:none;display:flex;gap:6px;flex-wrap:wrap;margin:0;padding:0;}
.ts-crumbs li:not(:last-child)::after{content:"/";margin-left:6px;color:var(--paper-line);}
.ts-page{padding:20px 16px 48px;}
.ts-updated{color:var(--muted);font-size:.85rem;}
.ts-prose h2{margin-top:1.6em;}

/* footer */
.ts-site-footer{border-top:1px solid var(--paper-line);margin-top:20px;padding:20px 16px;}
.ts-footer-row{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--muted);}
.ts-footer-links a{color:var(--muted);text-decoration:none;}
.ts-footer-links a:hover{color:var(--teal-dark);}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

@media print{
  .ts-site-header,.ts-site-footer,#ts-report-error,#ts-worked-examples,.ts-tool-controls,.ts-btn,#faq{display:none!important;}
  .ts-table-scroll{overflow:visible;border:none;}
  .ts-z-table thead th,.ts-z-table th[scope="row"]{position:static;}
  body{background:#fff;}
}
