/* tools template styles — owned by one agent; loaded after style.css. Scope: .tool-page (working days, leave planner, search), .sources-page */
.tool-page,.sources-page{--tl-work:var(--blue);--tl-hol:#e0464f;--tl-we:color-mix(in srgb,var(--ink-soft) 32%,var(--surface));--tl-leave:#0f9d76;--tl-back:#d98a1c;--tl-soft:color-mix(in srgb,var(--blue) 7%,var(--surface))}
.tool-page .tl-card{padding:24px 26px}
.tool-page .tl-card-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;margin-bottom:16px}
.tool-page .tl-card-head h2{margin:0}
.tool-page .tl-kicker{font-size:12px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.8px}
/* form */
.tool-page .tl-form{background:var(--tl-soft);border:1px solid var(--line);border-radius:12px;padding:16px}
.tool-page .tl-fields{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.tool-page .tl-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:750;color:var(--ink);min-width:0}
.tool-page .tl-fields input{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;padding:12px;font:600 16px var(--sans);background:var(--surface);color:var(--ink)}
.tool-page .tl-fields input:focus{outline:2px solid var(--blue);outline-offset:1px}
.tool-page .tl-go{min-height:48px;padding:0 22px;font-size:15px;white-space:nowrap}
.tool-page .tl-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px}
.tool-page .tl-presets>span{font-size:12px;font-weight:700;color:var(--ink-soft);margin-right:3px}
.tool-page .tl-pill{border:1px solid var(--line);background:var(--surface);color:var(--blue-dark);border-radius:999px;padding:7px 13px;font:700 12px var(--sans);cursor:pointer;white-space:nowrap}
.tool-page .tl-pill:hover{border-color:var(--blue)}
.tool-page .tl-pill.on{background:var(--blue);border-color:var(--blue);color:#fff}
.tool-page .tl-error{margin-top:14px;padding:12px 15px;border-radius:10px;background:#fdecef;color:#b7243d;font-size:14px;font-weight:650}
/* result */
.tool-page .tl-result{margin-top:20px}
.tool-page .tl-range{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 12px;font-size:15px;color:var(--ink)}
.tool-page .tl-range>span{font-size:12px;color:var(--ink-soft);font-weight:650;margin-left:auto}
.tool-page .tl-tiles{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:12px}
.tool-page .tl-tile{display:flex;flex-direction:column;gap:3px;padding:16px 18px;border-radius:12px;border:1px solid var(--line);background:var(--surface);min-width:0}
.tool-page .tl-tile strong{font:700 34px/1.1 var(--serif);color:var(--ink);letter-spacing:-.5px}
.tool-page .tl-tile strong.tl-date{font-size:24px;line-height:1.2}
.tool-page .tl-tile>span{font-size:13px;font-weight:700;color:var(--ink)}
.tool-page .tl-tile small{font-size:11.5px;color:var(--ink-soft);line-height:1.4}
.tool-page .tl-tile.tl-main{background:linear-gradient(135deg,var(--blue),var(--blue-dark));border-color:transparent}
.tool-page .tl-tile.tl-main strong{font-size:48px;color:#fff}
.tool-page .tl-tile.tl-main strong.tl-date{font-size:28px}
.tool-page .tl-tile.tl-main>span,.tool-page .tl-tile.tl-main small{color:#fff;opacity:.92}
.tool-page .tl-tile.tl-off{border-top:4px solid var(--tl-we)}
.tool-page .tl-tile.tl-we{border-top:4px solid var(--tl-we)}
.tool-page .tl-tile.tl-hol{border-top:4px solid var(--tl-hol)}
.tool-page .tl-tile.tl-back{border-top:4px solid var(--tl-back)}
.tool-page .tl-tile.tl-back strong{color:var(--tl-back)}
.tool-page .tl-bar,.tool-page .tl-mbar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--line);margin-top:16px}
.tool-page .tl-bar span,.tool-page .tl-mbar span{display:block;height:100%}
.tool-page .w{background:var(--tl-work)}.tool-page .h{background:var(--tl-hol)}.tool-page .e{background:var(--tl-we)}
.tool-page .tl-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:9px;font-size:12px;color:var(--ink-soft)}
.tool-page .tl-legend span{display:inline-flex;align-items:center;gap:6px}
.tool-page .tl-legend i{width:11px;height:11px;border-radius:3px;display:block}
.tool-page .tl-legend i.lv{background:var(--tl-leave)}.tool-page .tl-legend i.we{background:var(--tl-we)}.tool-page .tl-legend i.ho{background:var(--tl-hol)}.tool-page .tl-legend i.bk{background:var(--tl-back)}
.tool-page .tl-sub{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.tool-page .tl-sub h3{font:700 18px var(--serif);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.tool-page h3 em,.tool-page .tl-count{font:700 12px var(--sans);background:var(--sky);color:var(--blue-dark);border-radius:999px;padding:3px 9px;font-style:normal;vertical-align:middle}
.tool-page .tl-muted{font-size:13px;color:var(--ink-soft);margin:8px 0 0}
.tool-page .tl-hlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.tool-page .tl-hrow{display:flex;align-items:center;gap:11px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;border-left:4px solid var(--tl-hol);min-width:0}
.tool-page .tl-hrow.is-we{border-left-color:var(--tl-we)}
.tool-page .tl-hrow>div{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.3}
.tool-page .tl-hrow a,.tool-page .tl-hrow>div>span{font-size:13px;font-weight:700;color:var(--ink)}
.tool-page .tl-hrow a:hover{color:var(--blue)}
.tool-page .tl-hrow small{font-size:11px;color:var(--ink-soft)}
.tool-page .tl-chipdate{flex:none;width:44px;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;background:var(--sky);line-height:1.05;color:var(--ink)}
.tool-page .tl-chipdate b{font-size:17px}.tool-page .tl-chipdate small{font-size:10px;color:var(--ink-soft);margin-top:1px}.tool-page .tl-chipdate i{font-style:normal;font-size:9px;font-weight:700;color:var(--blue-dark);text-transform:uppercase;margin-top:2px}
/* months */
.tool-page .tl-yearform{display:flex;gap:6px;align-items:center}
.tool-page .tl-yearform select{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:var(--surface);color:var(--ink);font:700 13px var(--sans)}
.tool-page .tl-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.tool-page .tl-summary span{background:var(--soft);border:1px solid var(--line);border-radius:9px;padding:7px 12px;font-size:13px;color:var(--ink-soft)}
.tool-page .tl-summary b{color:var(--ink);font:700 17px var(--serif)}
.tool-page .tl-months{display:grid}
.tool-page .tl-mrow{display:grid;grid-template-columns:110px minmax(0,1fr) 62px 70px 62px;gap:14px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px}
.tool-page .tl-mrow:last-child{border-bottom:0}
.tool-page .tl-mrow .tl-mbar{margin:0;height:12px}
.tool-page .tl-mhead{font-size:11px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px;background:var(--soft);border-radius:8px;border:0}
.tool-page .tl-mrow>:nth-child(n+3){text-align:right}
.tool-page .tl-mname{font-weight:700}
.tool-page .tl-mw{font:700 16px var(--serif);color:var(--blue-dark)}
.tool-page .tl-mo i{font-style:normal;font-size:11px;font-weight:800;color:var(--tl-hol)}
.tool-page .tl-mh{color:var(--ink-soft)}
.tool-page .tl-mrow.is-cur{background:var(--tl-soft);border-radius:8px}
/* aside lists */
.tool-page .tl-aside-list h3{font-size:17px}
.tool-page .tl-aside-list ul{list-style:none;margin:0;padding:0;display:grid}
.tool-page .tl-aside-list li{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.tool-page .tl-aside-list li:last-child{border:0}
.tool-page .tl-aside-list li>span{color:var(--ink-soft);white-space:nowrap;font-size:12px}
.tool-page .tl-aside-list li>b{font-weight:650;color:var(--ink);min-width:0}
.tool-page .tl-aside-list li>em{font-style:normal;font-weight:800;font-size:11px;color:var(--blue-dark);background:var(--sky);border-radius:999px;padding:2px 7px}
.tool-page .tl-aside-list li.is-past{opacity:.5}
/* leave calendar */
.tool-page .tl-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:18px}
.tool-page .tl-wd{font-size:11px;text-align:center;color:var(--ink-soft);font-weight:700;padding-bottom:2px}
.tool-page .tl-day{position:relative;height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:14px;font-weight:700;background:var(--soft);color:var(--ink-soft)}
.tool-page .tl-day small{position:absolute;top:3px;left:6px;font-size:9px;font-weight:700;text-transform:uppercase;opacity:.85}
.tool-page .tl-day.out{background:transparent;opacity:.45}
.tool-page .tl-day.lv{background:var(--tl-leave);color:#fff}
.tool-page .tl-day.we{background:var(--tl-we);color:var(--ink)}
.tool-page .tl-day.ho{background:var(--tl-hol);color:#fff}
.tool-page .tl-day.bk{background:var(--surface);color:var(--tl-back);box-shadow:inset 0 0 0 2px var(--tl-back)}
/* bridges */
.tool-page .tl-bridges{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.tool-page .tl-bridge{display:flex;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}
.tool-page .tl-bridge.is-past{opacity:.55;background:var(--soft)}
.tool-page .tl-bnum{flex:none;width:62px;height:62px;border-radius:12px;background:var(--tl-leave);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.tool-page .tl-bridge.is-past .tl-bnum{background:var(--ink-soft)}
.tool-page .tl-bnum strong{font:700 26px var(--serif)}.tool-page .tl-bnum span{font-size:9px;font-weight:700;margin-top:3px;text-align:center}
.tool-page .tl-bbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.tool-page .tl-bbody>b{font-size:14px;color:var(--ink);line-height:1.3}
.tool-page .tl-bbody p{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink-soft)}
.tool-page .tl-ldays em{font-style:normal;font-weight:700;color:var(--ink);background:var(--sky);border-radius:5px;padding:1px 6px;margin-right:3px;white-space:nowrap;display:inline-block;margin-bottom:2px}
.tool-page .tl-bbody small{font-size:11px;color:var(--ink-soft)}
.tool-page .tl-bridge form{flex:none}
.tool-page .tl-pastlbl{flex:none;font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase}
/* search */
.tool-page .tl-sform{margin-bottom:18px}
.tool-page .tl-sform input{font-size:16px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
.tool-page .tl-sform button{min-height:50px}
.tool-page .tl-hits{display:grid;gap:9px}
.tool-page .tl-hit{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;transition:border-color .15s,background .15s}
.tool-page .tl-hit:hover{border-color:var(--blue);background:var(--tl-soft)}
.tool-page .tl-hitbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.tool-page .tl-hitbody strong{font:700 16px/1.3 var(--serif);color:var(--ink)}
.tool-page .tl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tool-page .tl-meta small{font-size:11.5px;color:var(--ink-soft)}
.tool-page .tl-lead{font-size:12.5px;line-height:1.5;color:var(--ink-soft)}
.tool-page mark{background:#ffe9a8;color:inherit;border-radius:3px;padding:0 2px}
.tool-page .tl-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font:750 10.5px/1.3 var(--sans)}
.tool-page .tl-b-off,.tool-page .tl-dot.tl-b-off{background:#fde5e7;color:#b5212f}
.tool-page .tl-b-dayoff{background:#dff6ed;color:#097b58}
.tool-page .tl-b-church{background:#fbefd9;color:#8f5b10}
.tool-page .tl-b-trad{background:#efe6fb;color:#6b3fb3}
.tool-page .tl-b-intl{background:#e4efff;color:#2861ad}
.tool-page .tl-b-reg{background:#e2f4f6;color:#1d6f7a}
.tool-page .tl-b-prof{background:#eef1f5;color:#4b5b70}
.tool-page .tl-empty{text-align:center;padding:26px 16px 10px}
.tool-page .tl-empty-icon{width:64px;height:64px;margin:0 auto 10px;border-radius:50%;background:var(--sky);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:32px}
.tool-page .tl-empty h2{margin:0 0 6px}
.tool-page .tl-empty p{margin:0}
.tool-page .tl-chipsec{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.tool-page .tl-chipsec h3{font:800 12px var(--sans);text-transform:uppercase;letter-spacing:.8px;color:var(--ink-soft);margin:0 0 10px}
.tool-page .tl-chipsec h3+.tl-chips+h3{margin-top:16px}
.tool-page .tl-chips{display:flex;flex-wrap:wrap;gap:7px}
.tool-page .tl-chips+h3{margin-top:16px}
.tool-page .tl-hchip{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;background:var(--sky);color:var(--blue-dark);font-size:13px;font-weight:700}
.tool-page .tl-hchip small{font-size:11px;color:var(--ink-soft);font-weight:650}
.tool-page .tl-hchip.pop{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.tool-page .tl-hchip:hover{background:var(--blue);color:#fff}.tool-page .tl-hchip:hover small{color:#fff}
.tool-page .tl-cats a{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;font-weight:650;color:var(--ink)}
.tool-page .tl-cats a:last-child{border:0}
.tool-page .tl-cats a:hover{color:var(--blue)}
.tool-page .tl-cats em{margin-left:auto;font-style:normal;font-size:11px;font-weight:800;color:var(--ink-soft)}
.tool-page .tl-dot{width:10px;height:10px;border-radius:50%;padding:0;flex:none}
.tool-page .tl-dot.tl-b-off{background:#e0464f}.tool-page .tl-dot.tl-b-church{background:#d99a3a}.tool-page .tl-dot.tl-b-trad{background:#8b5cd6}.tool-page .tl-dot.tl-b-intl{background:#3b82c4}.tool-page .tl-dot.tl-b-reg{background:#2a9aa8}.tool-page .tl-dot.tl-b-prof{background:#7b8798}
/* sources */
.sources-page .src-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sources-page .src-stats>div{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);min-width:0}
.sources-page .src-stats strong{font:700 26px/1.15 var(--serif);color:var(--ink)}
.sources-page .src-stats span{font-size:12px;color:var(--ink-soft)}
.sources-page .src-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sources-page .src-card{display:flex;flex-direction:column;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);border-top:4px solid var(--blue);min-width:0}
.sources-page .src-card:nth-child(4n+2){border-top-color:#d98a1c}.sources-page .src-card:nth-child(4n+3){border-top-color:#c8414b}.sources-page .src-card:nth-child(4n+4){border-top-color:#3a9d5d}
.sources-page .src-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.sources-page .src-icon{width:38px;height:38px;border-radius:10px;background:var(--sky);color:var(--blue-dark);display:flex;align-items:center;justify-content:center;font:700 19px var(--serif)}
.sources-page .src-tag{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--ink-soft)}
.sources-page .src-card h3{font-size:17px;line-height:1.3;margin:0 0 6px}
.sources-page .src-card p{margin:0 0 10px;font-size:13.5px;line-height:1.6;overflow-wrap:anywhere}
.sources-page .src-card .src-link{margin:auto 0 0;padding-top:10px;border-top:1px solid var(--line)}
.sources-page .src-link a{font-weight:750;color:var(--blue-dark);font-size:13px}
.sources-page .src-link a:hover{text-decoration:underline}
.sources-page .src-steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:st}
.sources-page .src-steps li{counter-increment:st;display:flex;flex-direction:column;gap:5px;padding:14px 16px;border-radius:12px;background:var(--soft);border:1px solid var(--line)}
.sources-page .src-steps li::before{content:counter(st);width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font:700 14px var(--sans);margin-bottom:4px}
.sources-page .src-steps b{font-size:14px;color:var(--ink)}
.sources-page .src-steps span{font-size:13px;line-height:1.55;color:var(--ink-soft)}
/* responsive */
@media(max-width:1100px){.tool-page .tl-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.tool-page.aside-column,.sources-page.aside-column{grid-template-columns:1fr}.sources-page .src-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
 .tool-page .tl-card{padding:16px}
 .tool-page .tl-form{padding:12px}
 .tool-page .tl-fields{grid-template-columns:1fr 1fr}
 .tool-page .tl-go{grid-column:1/-1;width:100%}
 .tool-page .tl-fields input{padding:10px 8px;font-size:15px}
 .tool-page .tl-tile{padding:13px 14px}
 .tool-page .tl-tile strong{font-size:28px}
 .tool-page .tl-tile.tl-main{grid-column:1/-1}
 .tool-page .tl-tile strong.tl-date{font-size:20px}
 .tool-page .tl-range>span{margin-left:0;width:100%}
 .tool-page .tl-mrow{grid-template-columns:72px minmax(0,1fr) 34px 46px;gap:8px;padding:8px 4px;font-size:12px}
 .tool-page .tl-mrow>:nth-child(5){display:none}
 .tool-page .tl-mname{overflow:hidden;text-overflow:ellipsis}
 .tool-page .tl-cal{gap:3px}.tool-page .tl-day{height:38px;font-size:13px}
 .tool-page .tl-bridges{grid-template-columns:1fr}
 .tool-page .tl-bridge{flex-wrap:wrap}
 .tool-page .tl-bridge form{width:100%}.tool-page .tl-bridge form .tl-pill{width:100%}
 .tool-page .tl-hit{gap:10px;padding:10px}
 .tool-page .tl-hit .arrow{display:none}
 .sources-page .src-grid,.sources-page .src-steps ol{grid-template-columns:1fr}
 .sources-page .src-stats strong{font-size:21px}
}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tool-page mark{background:#6b5713}:root:not([data-theme=light]) .tool-page .tl-badge,:root:not([data-theme=light]) .tool-page .tl-error{filter:brightness(.85) saturate(1.2)}}
:root[data-theme=dark] .tool-page mark{background:#6b5713}:root[data-theme=dark] .tool-page .tl-badge,:root[data-theme=dark] .tool-page .tl-error{filter:brightness(.85) saturate(1.2)}
@media print{.tool-page .tl-form,.tool-page .tl-bridge form{display:none}}
