/* Hifz planner. Tokens come from /assets/styles.css and /library/assets/library.css. */
.hz-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.hz-tabs a{font-size:15px;font-weight:600;color:var(--cream-dim);background:var(--bg-elevated);border:1px solid var(--line);border-radius:100px;padding:9px 16px;text-decoration:none;min-height:40px;display:inline-flex;align-items:center}
.hz-tabs a:hover{border-color:var(--gold-soft);color:var(--emerald)}
.hz-tabs a[aria-current="page"]{background:var(--emerald);color:#f5f1e8;border-color:var(--emerald)}

.hz-card{border:1px solid var(--line);border-radius:18px;background:var(--bg-card);padding:22px 24px;margin:0 0 18px}
.hz-card h2{font-family:var(--serif);font-size:24px;color:var(--emerald);margin:0 0 14px}
.hz-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hz-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:820px){.hz-grid,.hz-grid2{grid-template-columns:1fr}}
.hz-field{display:flex;flex-direction:column;gap:6px;margin:0 0 4px;min-width:0}
.hz-field>label,.hz-field .hz-lab{font-weight:600;font-size:15px;color:var(--cream)}
.hz-field input[type=date],.hz-field input[type=number],.hz-field input[type=time],.hz-field select{font:inherit;font-size:16px;padding:10px 12px;border-radius:10px;border:1px solid var(--line-strong);background:var(--bg);color:var(--cream);width:100%;min-height:44px}
.hz-field input:focus,.hz-field select:focus,.hz-btn:focus-visible,.hz-tk input:focus-visible+span,.hz-wdays input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.hz-hint{font-size:13.5px;color:var(--cream-muted);margin:2px 0 0;line-height:1.5}
.hz-sub{margin-top:14px}
.hz-pair{display:flex;gap:10px;align-items:center}
.hz-pair select{flex:1}
.hz-pair span{color:var(--cream-muted);font-size:14px}
.hz-wdays{display:flex;flex-wrap:wrap;gap:6px}
.hz-wdays label{position:relative;display:block}
.hz-wdays input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.hz-wdays span{display:flex;align-items:center;justify-content:center;min-width:46px;min-height:44px;padding:0 10px;border-radius:12px;border:1px solid var(--line-strong);background:var(--bg);font-size:14.5px;font-weight:600;color:var(--cream-dim)}
.hz-wdays input:checked+span{background:var(--emerald);border-color:var(--emerald);color:#f5f1e8}

.hz-btn{font:inherit;font-size:15px;font-weight:600;cursor:pointer;border-radius:100px;border:1px solid var(--line-strong);background:var(--bg-elevated);color:var(--emerald);padding:10px 18px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.hz-btn:hover{border-color:var(--gold-soft)}
.hz-btn.primary{background:var(--emerald);color:#f5f1e8;border-color:var(--emerald)}
.hz-btn.primary:hover{background:var(--emerald-hover)}
.hz-btn.quiet{background:none;color:var(--cream-dim);font-weight:500}
.hz-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:14px 0 0}
.hz-err{color:#9b2c1d;font-weight:600;margin:8px 0 0;min-height:0}

.hz-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
@media(max-width:820px){.hz-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hz-stat{border:1px solid var(--line);border-radius:14px;background:var(--bg-elevated);padding:14px 16px}
.hz-stat b{display:block;font-family:var(--serif);font-size:28px;line-height:1.1;color:var(--emerald);font-weight:600}
.hz-stat span{display:block;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--cream-muted);margin-top:4px}
.hz-bar{height:10px;border-radius:99px;background:var(--bg-elevated);overflow:hidden;border:1px solid var(--line)}
.hz-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--emerald),var(--gold));border-radius:99px;transition:width .3s}
.hz-meter{margin:10px 0 0;font-size:14.5px;color:var(--cream-dim)}
.hz-warn{color:#9b2c1d}
.hz-next{margin:8px 0 0;font-size:16px;color:var(--cream)}
.hz-next span{color:var(--cream-muted);font-size:14.5px}

.hz-table-wrap{border:1px solid var(--line);border-radius:14px;background:var(--bg-card);overflow:hidden}
.hz-table{width:100%;border-collapse:collapse;font-size:15px}
.hz-table thead th{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);background:var(--bg-elevated);padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}
.hz-table td,.hz-table tbody th{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.hz-table tbody tr:last-child>*{border-bottom:none}
.hz-d{white-space:nowrap;width:1%}
.hz-d b{display:block;font-family:var(--serif);font-size:17px;color:var(--emerald)}
.hz-d span{display:block;font-size:13px;color:var(--cream-muted);font-weight:400}
.hz-table tr.fri .hz-d span{color:var(--gold-text);font-weight:700}
.hz-table tr.today>*{background:color-mix(in srgb,var(--gold) 16%,var(--bg-card))}
.hz-table tr.done>*{background:color-mix(in srgb,var(--emerald) 8%,var(--bg-card))}
.hz-table tr.flash>*{outline:2px solid var(--gold);outline-offset:-2px}
.hz-tk{position:relative;display:flex;gap:10px;align-items:flex-start;cursor:pointer;min-height:44px}
.hz-tk input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}
.hz-tk>span{display:block;padding-left:32px;position:relative;line-height:1.35;flex:1}
.hz-tk>span::before{content:"";position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:6px;border:2px solid var(--gold-soft);background:var(--bg)}
.hz-tk input:checked+span::before{background:var(--emerald) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='%23f5f1e8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;border-color:var(--emerald)}
.hz-tk input:checked+span b{color:var(--cream-muted);text-decoration:line-through;text-decoration-color:var(--gold-soft)}
.hz-tk b{display:block;font-weight:600;color:var(--cream)}
.hz-tk i{display:block;font-style:normal;font-size:13px;color:var(--cream-muted)}
.hz-none{font-size:14px;color:var(--cream-muted);font-style:italic}
.hz-more{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0 0}
.hz-more[hidden]{display:none}
@media(max-width:640px){
  .hz-table thead{display:none}
  .hz-table,.hz-table tbody,.hz-table tr,.hz-table td,.hz-table tbody th{display:block;width:100%}
  .hz-table tr{border-bottom:1px solid var(--line);padding:8px 0}
  .hz-table td,.hz-table tbody th{border:none;padding:4px 14px}
  .hz-table tbody th.hz-d{display:flex;gap:10px;align-items:baseline;white-space:normal;width:100%}
  .hz-table td::before{content:attr(data-label);display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-text);font-weight:700}
}

.hz-method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
@media(max-width:820px){.hz-method{grid-template-columns:1fr}}
.hz-method div{border:1px solid var(--line);border-radius:14px;background:var(--bg-card);padding:16px 18px}
.hz-method b{display:block;font-family:var(--serif);font-size:20px;color:var(--emerald);margin-bottom:2px}
.hz-method em{display:block;font-style:normal;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);font-weight:700;margin-bottom:6px}
.hz-method p{margin:0;font-size:15px;line-height:1.55;color:var(--cream-dim)}

.hz-order{display:flex;flex-wrap:wrap;gap:6px 8px;margin:10px 0 18px;padding:0;list-style:none;counter-reset:o}
.hz-order li{counter-increment:o;font-size:14.5px;border:1px solid var(--line);border-radius:100px;padding:5px 12px;background:var(--bg-card);color:var(--cream-dim)}
.hz-order li::before{content:counter(o) ". ";color:var(--gold-text);font-weight:700}
.hz-order li a{text-decoration:none;color:var(--emerald);font-weight:600}
.hz-order li small{color:var(--cream-muted);font-size:12.5px}
.hz-wk td,.hz-wk th{font-size:14px}
.hz-wk td ul{margin:0;padding-left:16px}
.hz-wk td li{font-size:13.5px;margin:0 0 2px;line-height:1.4}

.hz-src{font-size:14px;color:var(--gold-text);margin:6px 0 0}
.hz-print-only{display:none}
.hz-sheet-t{width:100%;border-collapse:collapse;font-size:9pt;color:#111}
.hz-sheet-t th,.hz-sheet-t td{border:1px solid #6b7a70;padding:1mm 2mm;text-align:left;vertical-align:middle}
.hz-sheet-t th{background:#e9efe9;font-size:8pt;font-weight:700;height:7mm}
.hz-sheet-t td.dt{width:23mm;white-space:nowrap;font-size:8.5pt}
.hz-sheet-t td.bx{width:9mm;text-align:center}
.hz-sheet-t td.nt{width:30mm}
.hz-sheet-t tr{height:9mm}
.hz-sheet-t tr.fri td{background:#f6efd9}
.hz-sheet-h{margin:0 0 3mm;color:#111}
.hz-sheet-h h2{font-family:var(--serif);font-size:16pt;margin:0;color:#1B4D35}
.hz-sheet-h p{margin:1mm 0 0;font-size:9pt;color:#444}
.hz-sheet-foot{font-size:8pt;color:#555;margin:3mm 0 0;text-align:center}

@media print{
  html,body{background:#fff !important}
  body>*:not(main){display:none !important}
  .hg-main{padding:0 !important}
  .lib-wrap{max-width:none !important;padding:0 !important;margin:0 !important}
  .lib-wrap>*:not(.hz-sheet){display:none !important}
  .hz-print-only{display:block !important}
  .hz-sheet{border:none !important;padding:0 !important;margin:0 !important;background:#fff !important}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .hz-sheet-t tr{break-inside:avoid}
  .hz-sheet-t thead{display:table-header-group}
  .hz-wk-sheet .hz-table{font-size:9pt}
}
.hz-pair[hidden]{display:none}
