/* tools.css: the free tools under /tools. Forest/arakku/zari palette from critical.css; class names
   below are the ones the scripts in assets/tools/ generate, so rename them in both places or not at all. */
.tool-intro{margin-bottom:var(--s-6)}
.tool-card{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--forest-800);border-radius:var(--r);box-shadow:var(--shadow);padding:var(--s-5) var(--s-4)}
@media (min-width:640px){.tool-card{padding:var(--s-8)}}
.tool-card p,.tool-card li{text-align:left}
.tool-card h2{font-size:1.375rem}
.tool-card h3{font-size:1.125rem}
.tool-form{display:grid;gap:var(--s-5)}
.tool-form .field{margin-bottom:0}
.tool-row{display:grid;gap:var(--s-4)}
@media (min-width:640px){.tool-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
.tool-form .field input:not([type=checkbox]):not([type=radio]),.tool-form .field select,.tool-form .field textarea{width:100%;min-height:48px}
.tool-card .field textarea{min-height:120px}
.optional{font-weight:400;color:var(--ink-soft);font-size:.875rem}
.tool-hint{font-size:.9375rem;color:var(--ink-soft);margin:0}
.field .tool-hint{margin-top:6px}

/* Buttons: tools use the site's .btn--send / .btn--line / .btn--sm. The send button is full width in
   the enquiry form; inside a tool it sizes to its label. Old names are kept as aliases. */
.tool-card .btn--send,.tool-card .btn-accent{width:auto}
.btn-accent{background:var(--arakku);color:#fff}
.btn-accent:hover{background:var(--arakku-700);color:#fff}
.btn-ghost{background:var(--surface);color:var(--forest-800);border-color:var(--forest-300)}
.btn-ghost:hover{border-color:var(--forest-700);color:var(--forest-900)}
.btn-sm{min-height:38px;padding:7px 13px;font-size:.9375rem}
.btn:disabled{opacity:.6;cursor:progress}

.tool-choice{display:flex;flex-wrap:wrap;gap:var(--s-2);border:0;padding:0;margin:0;min-width:0}
.tool-choice legend{font-weight:600;margin-bottom:var(--s-2);color:var(--forest-900);padding:0}
.tool-choice label{display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-2) var(--s-4);border:1.5px solid var(--line);border-radius:var(--r-s);cursor:pointer;background:var(--surface);font-weight:400}
.tool-choice input{accent-color:var(--forest-800);margin:0}
.tool-choice label:has(input:checked){border-color:var(--forest-700);background:var(--forest-50)}
.tool-choice label:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.tool-choice label:has(input:disabled){cursor:default}

.tool-result{margin-top:var(--s-6);padding-top:var(--s-6);border-top:1px solid var(--line)}
.tool-result[hidden],.field[hidden]{display:none}
.tool-result:focus{outline:none}
details.tool-result>summary{cursor:pointer;font-weight:600;color:var(--forest-800)}
details.tool-result[open]>summary{margin-bottom:var(--s-4)}
.tool-big{font-family:var(--font-head);font-weight:600;font-size:clamp(2rem,6vw,2.75rem);line-height:1.1;color:var(--forest-900);margin:0 0 var(--s-2);overflow-wrap:anywhere}
.tool-out{border:1px solid var(--line-soft);border-left:3px solid var(--zari);border-radius:var(--r-s);background:var(--stone-50);padding:var(--s-4);margin-block:var(--s-3)}
.tool-out-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-2)}
.tool-out-head h3{font-family:var(--font-body);font-size:1rem;margin:0}
.tool-out p{margin:0;overflow-wrap:anywhere}
.tool-out p+p{margin-top:var(--s-2)}
.tool-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin-top:var(--s-4)}
.tool-status{padding:var(--s-3) var(--s-4);border-radius:var(--r-s);font-weight:600;margin:0}
.tool-status.is-error{background:var(--danger-bg);color:var(--danger)}
.tool-status.is-ok{background:var(--success-bg);color:var(--success)}
.tool-status.is-warn{background:var(--zari-100);color:#5e4716}
.tool-status+*{margin-top:var(--s-3)}
.tool-list{margin:var(--s-2) 0 0;padding-left:1.25em}
.tool-list li+li{margin-top:var(--s-2)}
.tool-help{display:flex;gap:var(--s-3);align-items:flex-start;margin:var(--s-5) 0 0;font-size:.9375rem;color:var(--ink-soft)}
.tool-help .ic{color:var(--forest-600);margin-top:3px}
pre.tool-code{white-space:pre-wrap;word-break:break-word;font:.875rem/1.5 ui-monospace,Consolas,monospace;background:var(--stone-50);padding:var(--s-3);border-radius:var(--r-s);margin:0}
.tool-timeline{list-style:none;margin:var(--s-4) 0 0;padding:0 0 0 var(--s-2);border-left:3px solid var(--zari)}
.tool-timeline li{position:relative;padding:0 0 var(--s-5) var(--s-5)}
.tool-timeline li::before{content:'';position:absolute;left:-10px;top:.35em;width:13px;height:13px;border-radius:50%;background:var(--surface);border:3px solid var(--forest-700)}
.tool-timeline time{display:block;font-weight:700;color:var(--forest-900)}
.tool-card .tbl-wrap{margin-top:var(--s-4)}
@media print{
  .crumbs,.tool-form,.tool-actions,.tool-help,#ai-chat,.blk:not(:has(.tool-card)){display:none!important}
  .tool-card{box-shadow:none;border:0;padding:0}
}

/* ==== fellowship stipend calculator ==== */
#fs-cities summary{cursor:pointer}
#fs-cities[open] summary{margin-bottom:var(--s-3)}
#fs-result tr.is-current th,#fs-result tr.is-current td{font-weight:700;background:var(--zari-100)}

/* ==== viva practice ==== */
#vp-card .tool-big{font-size:clamp(1.375rem,4vw,1.75rem)}
#vp-time{font-variant-numeric:tabular-nums;font-size:1.5rem;margin:0}

/* ==== phd rules by university ==== */
.pr-all{margin-top:var(--s-8)}
.pr-all-title{font-size:1.25rem;margin:0 0 var(--s-2)}
.pr-jump{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);list-style:none;margin:var(--s-3) 0 var(--s-5);padding:0;font-size:.9375rem}
.pr-uni{border:1px solid var(--line);border-radius:var(--r);margin-top:var(--s-3);background:var(--surface);scroll-margin-top:96px}
.pr-uni>summary{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s-1) var(--s-3);padding:var(--s-3) var(--s-4);cursor:pointer;min-height:44px}
.pr-uni-name{font-weight:600;color:var(--forest-900)}
.pr-uni-meta{font-size:.875rem;color:var(--ink-soft)}
.pr-ugc{border-color:var(--zari);border-left-width:4px}
.pr-uni-body{padding:0 var(--s-4) var(--s-4)}
.pr-rules{margin:0}
.pr-rule{padding:var(--s-3) 0;border-top:1px solid var(--line-soft)}
.pr-rule dt{font-weight:600;color:var(--forest-900);margin-bottom:var(--s-1)}
.pr-rule dd{margin:0}
.pr-rule dd p{margin:0}
.pr-rule dd p+p{margin-top:var(--s-1)}
.pr-rule.is-missing dd,.pr-none{color:var(--ink-soft);font-style:italic}
.pr-src,.pr-sources,.pr-sources-head{font-size:.875rem}
.pr-sources-head{margin:var(--s-3) 0 0;font-weight:600}
.pr-sources{margin:var(--s-1) 0 0;padding-left:1.25em}
.pr-links{margin:var(--s-3) 0 0;overflow-wrap:anywhere}
.pr-result-title{font-size:1.25rem;margin:0 0 var(--s-2)}
.pr-table td p{margin:0;overflow-wrap:anywhere}
.pr-table td p+p{margin-top:var(--s-1)}
.pr-short{font-weight:600;color:var(--forest-900)}
.pr-table tr.pr-diff th,.pr-table tr.pr-diff td{background:var(--arakku-50)}
.pr-table tr.pr-diff th{box-shadow:inset 4px 0 0 var(--arakku)}
.pr-badge{display:inline-block;margin-top:var(--s-1);padding:0 var(--s-2);border-radius:999px;background:var(--arakku);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.02em}
@media (min-width:768px){.pr-table th[scope=row]{width:18%}}
@media (max-width:767px){.pr-table tr.pr-diff{border-left:4px solid var(--arakku);padding-left:var(--s-3)}}
@media print{.pr-uni{break-inside:avoid}.pr-uni:not([open]) .pr-uni-body{display:block}}

/* ==== phd checklists ==== */
.ck-tabs{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-6)}
.ck-tabs[hidden],.ck-progress[hidden],.ck-actions[hidden],.ck-list[hidden]{display:none}
.ck-tabs [role=tab]{display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-2) var(--s-4);border:1.5px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--forest-900);font:inherit;font-size:.9375rem;cursor:pointer}
.ck-tabs [role=tab][aria-selected=true]{border-color:var(--forest-700);background:var(--forest-50);font-weight:600}
.ck-tab-count{font-size:.8125rem;color:var(--ink-soft);font-weight:400}
@media (max-width:639px){.ck-tabs{display:grid;grid-template-columns:1fr 1fr}.ck-tabs [role=tab]{justify-content:space-between;text-align:left;line-height:1.25}}
.ck-list+.ck-list{margin-top:var(--s-10)}
.ck.is-tabbed .ck-list+.ck-list{margin-top:0}
.ck-list:focus{outline:none}
.ck-title{font-size:1.375rem;margin:0 0 var(--s-2)}
.ck-when{margin-bottom:var(--s-3)}
.ck-progress{font-weight:600;color:var(--forest-900);margin:0 0 var(--s-3)}
.ck-items{list-style:none;margin:0;padding:0}
.ck-item{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) 0;border-top:1px solid var(--line-soft)}
.ck-item:last-child{border-bottom:1px solid var(--line-soft)}
.ck-item input{flex:none;width:22px;height:22px;margin:.15em 0 0;accent-color:var(--forest-800);cursor:pointer}
.ck-body{min-width:0}
.ck-body label{display:block;cursor:pointer;font-weight:400;color:var(--ink)}
.ck-item:has(input:checked) label{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:var(--forest-300)}
.ck-links{margin:var(--s-1) 0 0;font-size:.875rem;overflow-wrap:anywhere}
.ck-actions{margin-top:var(--s-5)}
@media print{
  .ck-tabs,.ck-actions{display:none!important}
  .ck-item{break-inside:avoid;padding:4pt 0}
  .ck-item input{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .ck-printing .tool-intro,.ck-printing .phead-meta,.ck-printing .phead-side,.ck-printing .ck-links,.ck-printing .reader-bar{display:none!important}
}
