/* time.foo planners (tbp / wsm / hab). Source: scripts/planner/assets/ */
.tf-tool{max-width:1080px}
.tf-tool h2{margin-top:1.6em}
.tf-app{margin:18px 0 8px}
.tf-controls{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin-bottom:12px}
.tf-field{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--muted,#627086);min-width:120px}
.tf-field input,.tf-field select,.tf-field textarea{font:inherit;color:var(--ink,#223754);padding:8px 10px;border:1px solid var(--line,#e5eaf1);border-radius:8px;background:#fff;min-height:40px}
.tf-field textarea{width:100%;min-width:260px;resize:vertical;box-sizing:border-box}
.tf-app > .tf-field{display:flex;margin-bottom:12px}
.tf-actions,.tf-export{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.tf-export{padding-top:12px;border-top:1px solid var(--line,#e5eaf1)}
.tf-danger{color:var(--danger,#a8392c)}
.tbp-grid{display:grid;grid-template-columns:56px 1fr;gap:0;border:1px solid var(--line,#e5eaf1);border-radius:10px;background:#fff;overflow:hidden;user-select:none;-webkit-user-select:none}
.tbp-labels{position:relative;border-right:1px solid var(--line,#e5eaf1);background:#fafbfd}
.tbp-labels span{position:absolute;left:0;right:6px;text-align:right;font-size:.75rem;color:var(--muted,#627086);transform:translateY(2px);font-variant-numeric:tabular-nums}
.tbp-area{position:relative;cursor:copy;background-image:linear-gradient(to bottom,#e7ebf1 1px,transparent 1px);touch-action:pan-y}
.tbp-block{position:absolute;box-sizing:border-box;margin:1px 2px;padding:4px 8px 10px 10px;border-radius:7px;border-left:5px solid #2851db;cursor:grab;overflow:hidden;font-size:.85rem;line-height:1.25;color:var(--ink,#223754);touch-action:none;box-shadow:0 1px 2px rgba(34,55,84,.12);display:flex;flex-wrap:wrap;column-gap:8px;align-content:flex-start}
.tbp-block strong{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.tbp-time{color:var(--muted,#627086);font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbp-block:focus-visible{outline:2px solid var(--blue,#2851db);outline-offset:1px}
.tbp-block.is-dragging{cursor:grabbing;box-shadow:0 6px 18px rgba(34,55,84,.25);z-index:3;opacity:.95}
.tbp-block.is-clipped{border-style:dashed}
.tbp-handle{position:absolute;left:0;right:0;bottom:0;height:12px;cursor:ns-resize;touch-action:none}
.tbp-handle::after{content:"";position:absolute;left:50%;bottom:3px;width:28px;height:3px;margin-left:-14px;border-radius:2px;background:rgba(34,55,84,.3)}
.tbp-total{font-weight:600;margin:10px 0 0}
.tf-dialog{border:1px solid var(--line,#e5eaf1);border-radius:14px;padding:20px;max-width:420px;width:calc(100% - 32px);box-sizing:border-box}
.tf-dialog::backdrop{background:rgba(20,30,50,.35)}
.tf-dialog h2{margin:0 0 12px;font-size:1.15rem}
.tf-dialog-form > .tf-field{margin-bottom:12px}
.tf-dialog-form input[type=text]{width:100%;box-sizing:border-box}
.tbp-swatches{display:flex;gap:8px}
.tbp-swatch{width:30px;height:30px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line,#e5eaf1);cursor:pointer;padding:0}
.tbp-swatch[aria-checked=true]{box-shadow:0 0 0 3px var(--ink,#223754)}
.tf-templates{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:0;list-style:none}
.tf-templates li{border:1px solid var(--line,#e5eaf1);border-radius:10px;padding:12px 14px;background:#fff}
.tf-templates strong{display:block;margin-bottom:8px}
.tf-templates .btn{margin:0 6px 6px 0}
.tf-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line,#e5eaf1);border-radius:10px;background:#fff}
.wsm-table,.hab-table{border-collapse:collapse;width:100%;font-size:.85rem}
.wsm-table th,.wsm-table td,.hab-table th,.hab-table td{border-bottom:1px solid var(--line,#e5eaf1);padding:4px;text-align:center;white-space:nowrap}
.wsm-table thead th,.hab-table thead th{background:#f5f7fb;font-weight:600}
.wsm-table small,.hab-table small{color:var(--muted,#627086);font-weight:400}
.wsm-table input{font:inherit;width:100%;min-width:72px;box-sizing:border-box;border:1px solid transparent;border-radius:6px;padding:6px;text-align:center;background:transparent;color:var(--ink,#223754)}
.wsm-table input:hover,.wsm-table input:focus{border-color:var(--line,#c3ccd9);background:#fff}
.wsm-table .wsm-name{text-align:left;min-width:110px;font-weight:600}
.wsm-hours{font-weight:650;font-variant-numeric:tabular-nums}
.wsm-table tfoot th{text-align:right}
.wsm-remove{min-width:0;padding:2px 8px}
.hab-table tbody th{text-align:left;max-width:180px;overflow:hidden;text-overflow:ellipsis;padding-left:8px;font-weight:600}
.hab-table td{padding:2px}
.hab-table .is-weekend{background:#f6f8fb}
.hab-cell{width:24px;height:24px;border:1.5px solid #c3ccd9;border-radius:5px;background:#fff;cursor:pointer;padding:0}
.hab-cell[aria-pressed=true]{background:var(--blue,#2851db);border-color:var(--blue,#2851db)}
.hab-count{font-variant-numeric:tabular-nums;color:var(--muted,#627086)}
.tf-howto ol{padding-left:1.3em}
.tf-faq details{border-top:1px solid var(--line,#e5eaf1);padding:10px 0}
.tf-faq summary{cursor:pointer;font-weight:600}
.tf-hub-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.tf-hub-list li{border:1px solid var(--line,#e5eaf1);border-radius:10px;padding:12px 14px;background:#fff}
.tf-hub-list a{font-weight:650}
.tf-hub-list p{margin:6px 0 0;color:var(--muted,#627086);font-size:.9rem}
#tf-print{display:none}
@media (max-width:640px){.tf-controls .tf-field{min-width:calc(50% - 8px);flex:1}.tbp-grid{grid-template-columns:46px 1fr}}
@page land{size:A4 landscape;margin:0}
@page port{size:A4 portrait;margin:0}
@media print{
  body > *:not(#tf-print){display:none !important}
  #tf-print{display:block !important}
  #tf-print.land{page:land}
  #tf-print.port{page:port}
  #tf-print img{display:block;width:100%;height:auto;max-height:100vh;object-fit:contain}
}
