/* Thesis toolkit (thesis-tools.php). Loaded after pdf-tools.css for the hero, option fields,
   segments, icon buttons and privacy note. Adds the four-tab strip, the sticky result card, the
   reference list with hanging indents, the IOC grid, result tables, file lists and the checklist. */
.ts-hero:before{content:"APA"}
.ts-app{padding-top:56px;background:linear-gradient(180deg,#f6f8fb 0%,#fff 260px)}
.ts-app [hidden]{display:none!important}
.ts-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:28px}
.ts-tab{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;cursor:pointer;color:var(--navy);transition:.2s var(--ease)}
.ts-tab .icon{grid-row:1/3;width:28px;height:28px;color:var(--blue)}
.ts-tab span{font-weight:700;font-size:.95rem;letter-spacing:-.01em}
.ts-tab small{font-size:.72rem;color:#687482}
.ts-tab:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 1px 2px rgba(7,20,42,.07),0 12px 28px rgba(11,37,69,.08)}
.ts-tab[aria-selected="true"]{background:linear-gradient(135deg,#0b2545,#1e4a7d);border-color:transparent;color:#fff;box-shadow:0 1px 2px rgba(7,20,42,.07),0 16px 34px rgba(11,37,69,.22)}
.ts-tab[aria-selected="true"] .icon{color:var(--brand-pink-tint)}
.ts-tab[aria-selected="true"] small{color:#c9d7e5}
.ts-body{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:28px;align-items:start}
.ts-panel{display:flex;flex-direction:column;gap:14px}
.ts-panel .pdft-options{gap:12px}
.ts-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ts-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.ts-fields{display:flex;flex-direction:column;gap:12px}
.ts-chips{display:flex;flex-wrap:wrap;gap:6px}
.ts-chips label{position:relative;font-size:.8rem;font-weight:600;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#4e5e72;cursor:pointer;transition:.15s}
.ts-chips input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ts-chips label:has(input:checked){background:var(--navy);border-color:var(--navy);color:#fff}
.ts-chips label:has(input:focus-visible){box-shadow:0 0 0 3px rgba(47,111,176,.3)}
.ts-mini-btn{background:#fff;border:1px solid var(--line)!important;color:var(--navy);border-radius:999px;padding:9px 16px;font-size:.84rem;gap:8px;align-self:flex-start}
.ts-mini-btn .icon,.ts-run .icon{width:16px;height:16px}
.ts-run{border-radius:999px;padding:11px 20px;gap:8px}
.ts-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ts-toolbar small{font-size:.74rem;color:#687482;flex-basis:100%}
.ts-doi{display:flex;gap:8px}
.ts-doi input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:.9rem;min-width:0}
.ts-doi input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,111,176,.15)}
.ts-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px;padding-top:14px;border-top:1px solid var(--line)}
.ts-list-head h3{margin:0}
.ts-empty{margin:0;font-size:.84rem;color:#687482;line-height:1.6}
.ts-hanging{padding-left:2.2em;text-indent:-2.2em;line-height:1.7;font-size:.95rem;color:var(--ink);overflow-wrap:anywhere}
.ts-reflist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ts-reflist li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:8px}
.ts-ref-tools{display:flex;align-items:center;gap:6px}
.ts-ref-tools small{margin-right:auto;font-size:.76rem;color:#687482;font-family:ui-monospace,Consolas,monospace}
.ts-ref-tools .pdft-icon-btn{width:30px;height:30px}
.ts-muted{color:#8794a5;font-size:.86rem}

/* ---- IOC grid ---- */
.ts-ioc{display:flex;flex-direction:column;gap:6px;overflow-x:auto}
.ts-ioc-row{display:grid;grid-template-columns:minmax(160px,1fr) repeat(var(--n,3),64px) 60px 32px;gap:6px;align-items:center;min-width:max-content}
.ts-ioc-head span{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#687482;text-align:center;padding:0 2px}
.ts-ioc-head span:first-child{text-align:left}
.ts-ioc-row input,.ts-ioc-row select{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.88rem;color:var(--ink);background:#fff;width:100%;min-width:0}
.ts-ioc-row select{text-align:center;padding:8px 4px}
.ts-ioc-row input:focus,.ts-ioc-row select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,111,176,.15)}
.ts-ioc-row output{font:700 .84rem Manrope,sans-serif;text-align:center;border-radius:4px;padding:6px 0;color:#687482;background:#eef2f6}
.ts-ioc-row output[data-tone="ok"]{background:#e9f4ee;color:#14603a}
.ts-ioc-row output[data-tone="bad"]{background:#fdf2f3;color:#c0263a}

/* ---- word formatter ---- */
.ts-margins{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ts-help{margin:0;font-size:.78rem;color:#687482;line-height:1.6}
.ts-drop>div{min-width:0}

/* ---- book files ---- */
.ts-drop{border:2px dashed #b9c8d8;border-radius:14px;background:#fff;padding:18px 20px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:.2s;text-align:left}
.ts-drop:hover,.ts-drop:focus-visible{border-color:var(--blue);background:#f4f8fd;outline:none}
.ts-drop.is-over{border-color:var(--magenta);background:#fdf2f7}
.ts-drop .icon{width:26px;height:26px;color:var(--blue);flex:none}
.ts-drop strong{display:block;font-size:.95rem;color:var(--navy)}
.ts-drop small{color:#687482;font-size:.78rem}
.ts-files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ts-files:empty{display:none}
.ts-files li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.ts-file-no{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font:700 .74rem Manrope,sans-serif}
.ts-files strong{display:block;font-size:.88rem;color:var(--ink);overflow-wrap:anywhere}
.ts-files small{font-size:.74rem;color:#687482}
.ts-file-actions{display:flex;gap:4px}
.ts-file-actions .pdft-icon-btn{width:30px;height:30px}
.ts-dl{display:flex;flex-direction:column;align-items:center;gap:2px;border-radius:8px;padding:14px;margin-top:14px;text-align:center}
.ts-dl small{font-weight:500;opacity:.8;font-size:.76rem}
.ts-warn{margin:10px 0 0;padding:10px 12px;border-radius:8px;background:#fff1e0;border:1px solid #f5cf9a;color:#8a4b06;font-size:.8rem;line-height:1.5}

/* ---- checklist ---- */
.ts-check-group.is-done{border-color:#bfe3cf;background:#f7fcf9}
.ts-check-head{display:flex;justify-content:space-between;align-items:center}
.ts-check-head h3{margin:0}
.ts-check-count{font:700 .74rem Manrope,sans-serif;color:var(--blue);background:#e9f1fb;border-radius:999px;padding:4px 10px}
.is-done .ts-check-count{background:#e9f4ee;color:#14603a}
.ts-checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.ts-check-item{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;padding:8px 6px;border-radius:8px;cursor:pointer;transition:.15s}
.ts-check-item:hover{background:#f4f8fd}
.ts-check-item input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue)}
.ts-check-item span{display:flex;flex-direction:column;gap:2px}
.ts-check-item strong{font-size:.9rem;font-weight:600;color:var(--ink)}
.ts-check-item small{font-size:.76rem;color:#687482;line-height:1.5}
.ts-check-item:has(input:checked) strong{color:#8794a5;text-decoration:line-through}

/* ---- result column ---- */
.ts-side{position:sticky;top:96px}
.ts-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 1px 2px rgba(7,20,42,.07),0 18px 44px rgba(11,37,69,.08)}
.ts-subhead{font-size:.76rem;font-family:Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#687482;margin:0 0 8px}
.ts-subhead+.ts-subhead,.ts-preview+.ts-subhead{margin-top:16px}
.ts-preview{background:#f6f8fb;border-radius:8px;padding:12px 14px;font-size:.92rem;line-height:1.7;color:var(--ink);overflow-wrap:anywhere;min-height:2.8em}
.ts-preview small{color:#687482}
.ts-preview.ts-hanging{padding-left:calc(14px + 2.2em)}
.ts-big{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:14px 0 8px;border-radius:14px;background:linear-gradient(180deg,#f6f8fb,#fff)}
.ts-big-label{font:700 .72rem Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#687482;padding:0 12px}
.ts-big strong{font:800 3.6rem/1 Manrope,sans-serif;letter-spacing:-.05em;color:var(--navy);font-variant-numeric:tabular-nums}
.ts-big-sub{font-size:.8rem;color:#687482;margin-top:6px;padding:0 12px}
.ts-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.ts-actions .button{justify-content:center;border-radius:8px;padding:12px 10px;font-size:.82rem;gap:8px}
.ts-actions .button:first-child:last-child,.ts-actions .button.button-primary,.ts-actions .button.button-primary+.button:last-child{grid-column:1/-1}
.ts-actions .button:not(.button-primary){background:#fff;border:1px solid var(--line);color:var(--navy)}
.ts-actions .button:not(.button-primary):hover{border-color:var(--blue);color:var(--blue)}
.ts-actions .button .icon{width:16px;height:16px;flex:none}
.ts-note{margin:12px 0 0;font-size:.78rem;color:#687482;line-height:1.55}
.ts-meta,.ts-rules{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:12px 0 0;font-size:.78rem;color:#687482}
.ts-meta dt,.ts-rules dt{font-weight:600;color:#4e5e72}
.ts-meta dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;color:var(--navy);overflow-wrap:anywhere}
.ts-rules dd{margin:0;color:var(--ink);line-height:1.5}
.ts-meta:empty{display:none}
.ts-bar{height:10px;border-radius:999px;background:#eef2f6;margin-top:12px;overflow:hidden}
.ts-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2f6fb0,#178a7a);transition:width .4s var(--ease);width:0}
.ts-stat-out{margin-top:14px}
.ts-table{width:100%;border-collapse:collapse;font-size:.82rem;font-variant-numeric:tabular-nums}
.ts-table caption{caption-side:top;text-align:left;font-weight:700;font-size:.8rem;color:var(--navy);padding:0 0 6px}
.ts-table th{text-align:center;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:#8794a5;padding:5px 6px;border-bottom:1px solid var(--line)}
.ts-table th:first-child{text-align:left}
.ts-table td{padding:6px;border-bottom:1px solid #eef2f6;color:var(--ink);text-align:center}
.ts-table td.is-label{text-align:left;overflow-wrap:anywhere}
.ts-table tr:last-child td{font-weight:700;background:#f6f8fb}

@media(max-width:1200px){.ts-tabs{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.ts-tabs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.ts-body{grid-template-columns:1fr}.ts-side{position:static}}
@media(max-width:700px){
  .ts-app{padding-top:36px}.ts-tabs{grid-template-columns:1fr;gap:8px}.ts-tab{padding:12px 14px}.ts-two,.ts-three{grid-template-columns:1fr}
  .ts-doi{flex-direction:column}.ts-margins{grid-template-columns:1fr 1fr}.ts-actions{grid-template-columns:1fr}.ts-big strong{font-size:3rem}
  .ts-files li{grid-template-columns:24px minmax(0,1fr);}.ts-file-actions{grid-column:1/-1;justify-content:flex-end}
}

/* ---- dark mode ---- */
[data-theme="dark"] .ts-app{background:linear-gradient(180deg,var(--dm-surface) 0%,var(--dm-bg) 260px)}
[data-theme="dark"] .ts-tab,[data-theme="dark"] .ts-card,[data-theme="dark"] .ts-chips label,[data-theme="dark"] .ts-mini-btn,[data-theme="dark"] .ts-reflist li,[data-theme="dark"] .ts-files li,[data-theme="dark"] .ts-drop,[data-theme="dark"] .ts-doi input,[data-theme="dark"] .ts-ioc-row input,[data-theme="dark"] .ts-ioc-row select,[data-theme="dark"] .ts-actions .button:not(.button-primary){background:var(--dm-surface);border-color:var(--dm-border);color:var(--dm-text)}
[data-theme="dark"] .ts-tab small,[data-theme="dark"] .ts-empty,[data-theme="dark"] .ts-muted,[data-theme="dark"] .ts-subhead,[data-theme="dark"] .ts-big-label,[data-theme="dark"] .ts-big-sub,[data-theme="dark"] .ts-note,[data-theme="dark"] .ts-meta,[data-theme="dark"] .ts-rules,[data-theme="dark"] .ts-meta dt,[data-theme="dark"] .ts-rules dt,[data-theme="dark"] .ts-table th,[data-theme="dark"] .ts-check-item small,[data-theme="dark"] .ts-files small,[data-theme="dark"] .ts-drop small,[data-theme="dark"] .ts-ioc-head span,[data-theme="dark"] .ts-ref-tools small,[data-theme="dark"] .ts-toolbar small,[data-theme="dark"] .ts-help{color:var(--dm-text-muted)}
[data-theme="dark"] .ts-tab[aria-selected="true"]{background:linear-gradient(135deg,#1e4a7d,#0b2545);color:#fff}
[data-theme="dark"] .ts-chips label:has(input:checked){background:var(--blue);border-color:var(--blue);color:#fff}
[data-theme="dark"] .ts-big{background:linear-gradient(180deg,var(--dm-surface-2),var(--dm-surface))}
[data-theme="dark"] .ts-big strong,[data-theme="dark"] .ts-meta dd,[data-theme="dark"] .ts-rules dd,[data-theme="dark"] .ts-table td,[data-theme="dark"] .ts-hanging,[data-theme="dark"] .ts-preview,[data-theme="dark"] .ts-check-item strong,[data-theme="dark"] .ts-files strong,[data-theme="dark"] .ts-drop strong,[data-theme="dark"] .ts-table caption{color:var(--dm-text)}
[data-theme="dark"] .ts-preview,[data-theme="dark"] .ts-bar,[data-theme="dark"] .ts-ioc-row output{background:var(--dm-surface-2)}
[data-theme="dark"] .ts-table td{border-bottom-color:var(--dm-border)}
[data-theme="dark"] .ts-table tr:last-child td{background:var(--dm-surface-2)}
[data-theme="dark"] .ts-check-item:hover{background:var(--dm-surface-2)}
[data-theme="dark"] .ts-check-group.is-done{background:#12301f;border-color:#22563a}
[data-theme="dark"] .ts-check-count{background:rgba(47,111,176,.2);color:#8fc1ea}
[data-theme="dark"] .ts-ioc-row output[data-tone="ok"]{background:#12301f;color:#8fd6ac}
[data-theme="dark"] .ts-ioc-row output[data-tone="bad"]{background:rgba(192,38,58,.15);color:#f19aa6}
[data-theme="dark"] .ts-warn{background:#3a2610;border-color:#6d4a1f;color:#f5b970}
[data-theme="dark"] .ts-list-head{border-top-color:var(--dm-border)}

/* ---- print: the checklist only ---- */
@media print{
  body.ts-print *{visibility:hidden}
  body.ts-print #ts-panel-check,body.ts-print #ts-panel-check *{visibility:visible}
  body.ts-print #ts-panel-check{position:absolute;left:0;top:0;width:100%}
  body.ts-print #ts-panel-check .ts-toolbar{display:none}
  body.ts-print .ts-check-group{break-inside:avoid;box-shadow:none;border-color:#bbb}
}
