/* Practical color helpers and author contact. Load after dark.css. */
.auto-extract{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}
.extract-head{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:10px}
.extract-head h3,.extract-head strong{font-size:12px;font-weight:650;line-height:1.5;margin:0;color:var(--ink)}
.extract-head>span,.extract-head small{font-size:11px;color:var(--muted);line-height:1.5}
.extract-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.extract-controls label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:11px;color:var(--ink-soft);line-height:1.5}
.extract-controls select{width:100%;min-width:0;font-size:11px;min-height:35px;padding-top:7px;padding-bottom:7px}
.extract-canvas{display:block;width:100%;height:32px;border-radius:5px;border:1px solid #ffffff12;background:#22242c;margin-bottom:9px}
.extract-apply{width:100%;min-height:36px;font-size:11px;justify-content:center}
.extract-status{font-size:11px;line-height:1.7;color:var(--muted);margin:8px 0 0;overflow-wrap:anywhere}
.extract-status:empty{display:none}
.extract-status[data-state=error]{color:#e6b59e}
.extract-status[data-state=success]{color:var(--success)}
.lightness-tools{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}
.switch-label{display:inline-flex;align-items:center;gap:7px;font-size:11px;line-height:1.6;color:var(--ink-soft);cursor:pointer;user-select:none;min-height:25px}
.switch-label:hover{color:var(--ink)}
.check-toggle,.switch-label input[type=checkbox]{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:15px;height:15px;min-width:15px;margin:0;padding:0;border:1px solid #62616f;border-radius:4px;background:#22242c;vertical-align:middle;cursor:pointer;transition:border-color .15s,background .15s}
.check-toggle:checked,.switch-label input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}
.check-toggle::before,.switch-label input[type=checkbox]::before{content:"";width:7px;height:4px;transform:translateY(-1px) rotate(-45deg) scale(0);border-bottom:2px solid #1b1727;border-left:2px solid #1b1727;transition:transform .12s}
.check-toggle:checked::before,.switch-label input[type=checkbox]:checked::before{transform:translateY(-1px) rotate(-45deg) scale(1)}
.check-toggle:disabled,.switch-label input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}
.lightness-panel{margin-top:11px;padding:11px 12px 9px;border:1px solid var(--line);border-radius:7px;background:#15161b;overflow:hidden}
.lightness-strip{display:block;width:100%;height:20px;min-height:20px;border-radius:3px;border:1px solid #ffffff0b;object-fit:fill}
.lightness-curve{display:block;width:100%;height:48px;margin-top:8px;overflow:visible;object-fit:fill}
.lightness-curve .grid-line,.lightness-curve .guide{stroke:#383a43;stroke-width:1;fill:none}
.lightness-curve .curve-line{stroke:var(--accent);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.lightness-labels{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:5px;color:#9698a7;font-size:10px;line-height:1.6}
.lightness-labels strong{color:#bcb9cb;font-size:10px;font-weight:500}
.author-logo{display:block;width:36px;height:36px;object-fit:contain;flex-shrink:0;border-radius:0}
.author-contact-btn{min-height:36px;font-size:11px;gap:6px}
.author-contact-btn svg{width:15px;height:15px}
dialog.contact-dialog,.contact-dialog dialog{width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:23px;background:#191a1f;border:1px solid #3b3c47;color:var(--ink);border-radius:12px;box-shadow:0 20px 90px #0008}
dialog.contact-dialog::backdrop,.contact-dialog dialog::backdrop{background:#08090cb3;backdrop-filter:blur(5px)}
.contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:20px}
.contact-head h2{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.5;margin:0 0 5px;color:var(--ink)}
.contact-head p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}
.contact-close{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;min-width:30px;padding:0;background:#262831;color:#aeb0bd;border:1px solid #3b3e4c;border-radius:6px;cursor:pointer}
.contact-close:hover{background:#343641;color:#fff;border-color:#656074}
.contact-close svg{width:15px;height:15px}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.contact-card{display:flex;flex-direction:column;align-items:center;min-width:0;border:1px solid #32343e;border-radius:8px;background:#1c1d23;padding:15px 11px 13px;text-align:center;overflow:hidden}
.contact-card img{width:170px;height:170px;max-width:100%;object-fit:contain;background:#fff;border:7px solid #fff;border-radius:3px;image-rendering:auto;flex-shrink:0}
.contact-card strong{display:block;margin-top:11px;color:#e7e6ee;font-size:13px;font-weight:650;line-height:1.5}
.contact-card small{display:block;font-size:11px;line-height:1.7;color:#9699a9;margin-top:3px;overflow-wrap:anywhere}
.contact-dialog .contact-note{font-size:11px;line-height:1.8;color:var(--muted);margin:16px 0 0;text-align:center}
.footer-brand-image{display:block;width:40px;height:40px;object-fit:contain;flex-shrink:0;border-radius:0}
@media(max-width:767px){
 .auto-extract{margin-top:13px;padding-top:12px}.extract-controls{gap:7px}.extract-head{margin-bottom:9px}.extract-head h3,.extract-head strong{font-size:11px}.extract-head>span,.extract-head small{font-size:10px}.extract-controls label{font-size:10px}.extract-controls select{font-size:10px;min-height:33px;padding-left:6px;padding-right:22px;background-position:right 6px center}.extract-status{font-size:10px}.extract-apply{font-size:10px}
 .lightness-tools{gap:7px 14px}.switch-label{font-size:11px}.lightness-panel{padding:10px}.author-logo{width:33px;height:33px}.author-contact-btn{font-size:10px;min-height:33px}
}
@media(max-width:480px){
 .auto-extract{margin-top:11px;padding-top:10px}.extract-head{gap:4px;flex-wrap:wrap;margin-bottom:8px}.extract-head h3,.extract-head strong{font-size:11px}.extract-head>span,.extract-head small{font-size:10px}.extract-controls{grid-template-columns:1fr 1fr;gap:6px}.extract-controls label{font-size:10px;gap:3px}.extract-controls select{font-size:10px;min-height:33px}.extract-canvas{height:28px;margin-bottom:8px}.extract-apply{min-height:34px;font-size:10px;padding:7px 6px}.extract-status{font-size:10px;line-height:1.7}
 .lightness-tools{margin-top:12px;padding-top:10px;gap:6px 13px}.switch-label{font-size:11px;gap:6px;min-height:28px}.check-toggle,.switch-label input[type=checkbox]{width:16px;height:16px;min-width:16px}.lightness-panel{margin-top:8px;padding:9px}.lightness-labels,.lightness-labels strong{font-size:10px}.lightness-curve{height:44px}
 .author-logo{width:30px;height:30px}.author-contact-btn{font-size:10px;gap:4px;min-height:32px;padding:7px 8px}.author-contact-btn svg{width:13px;height:13px}
 dialog.contact-dialog,.contact-dialog dialog{padding:18px;width:calc(100vw - 28px);max-height:calc(100dvh - 36px);border-radius:10px}.contact-head{margin-bottom:15px;gap:10px}.contact-head h2{font-size:17px}.contact-head p{font-size:11px}.contact-close{width:28px;height:28px;min-width:28px}.contact-grid{gap:9px}.contact-card{padding:10px 8px 11px;border-radius:7px}.contact-card img{width:170px;height:auto;aspect-ratio:1;border-width:5px}.contact-card strong{font-size:12px;margin-top:9px}.contact-card small{font-size:10px;line-height:1.7}.contact-dialog .contact-note{font-size:10px;margin-top:13px}.footer-brand-image{width:36px;height:36px}
}

