/* ─────────────────────────────────────────────────────────────
   Tools — v3 design system
   Shared by /tools and every sub-tool page.
   Uses tokens from homepage-v30.css (var(--accent), --ink, --line, --bg-2,
   --soft, --sans, --mono, --dark, --dark-ink, --accent-bright, etc.).
   ───────────────────────────────────────────────────────────── */

/* ── Hero (dark variant — matches homepage / pricing) ── */
.tools-hero{
    padding:96px 0 28px;text-align:center;position:relative;overflow:hidden;
    background:
        radial-gradient(900px 500px at 80% -20%, rgba(78,201,126,0.10), transparent 60%),
        radial-gradient(700px 400px at 0% 10%, rgba(255,255,255,0.04), transparent 60%),
        var(--dark);
    color:var(--dark-ink);
}
.tools-hero::before{
    content:'';position:absolute;inset:0;pointer-events:none;
    background-image:radial-gradient(circle, rgba(255,255,255,.07) 0.6px, transparent 0.6px);
    background-size:18px 18px;
    -webkit-mask-image:radial-gradient(ellipse 60% 50% at 50% 30%, #000 30%, transparent 75%);
    mask-image:radial-gradient(ellipse 60% 50% at 50% 30%, #000 30%, transparent 75%);
}
.tools-hero::after{
    content:'';position:absolute;top:-120px;right:-120px;width:520px;height:520px;
    pointer-events:none;
    background:radial-gradient(circle, rgba(78,201,126,.18), transparent 60%);
}
.tools-hero > *{position:relative;z-index:1}
.tools-hero-inner{max-width:760px;margin:0 auto;padding:0 24px}
.tools-hero .eyebrow{justify-content:center;color:var(--dark-muted)}
.tools-hero .eyebrow .dot{
    background:var(--accent-bright);
    box-shadow:0 0 0 3px rgba(78,201,126,.20);
}
.tools-hero .hero-h{
    margin:18px 0 18px;
    font-size:clamp(38px,5.4vw,58px);line-height:1.02;
    color:var(--dark-ink);
}
.tools-hero .hero-sub{
    margin-left:auto;margin-right:auto;
    font-size:18px;text-align:center;max-width:560px;
    color:var(--dark-ink-2);
}

/* ── Hero search bar (input + primary button on dark) ── */
.tools-hero-search{
    margin:32px auto 0;max-width:580px;
    display:flex;gap:8px;align-items:stretch;flex-wrap:nowrap;
    text-align:left;
}
.tools-hero-search input[type="text"]{
    flex:1;min-width:0;
    padding:13px 16px;
    font-family:var(--sans);font-size:15px;line-height:1.3;
    color:var(--ink);background:#fff;
    border:1px solid rgba(255,255,255,.16);border-radius:10px;
    box-shadow:0 1px 2px rgba(12,12,13,.18);
    transition:border-color .14s,box-shadow .14s;
}
.tools-hero-search input[type="text"]::placeholder{color:var(--soft)}
.tools-hero-search input[type="text"]:focus{
    border-color:var(--accent-bright);
    box-shadow:0 0 0 4px rgba(78,201,126,.25);
    outline:none;
}
.tools-hero-search button{
    flex:0 0 auto;
    padding:13px 22px;
    font-family:var(--sans);font-size:14.5px;font-weight:600;line-height:1.2;
    color:#fff;background:var(--accent);
    border:1px solid var(--accent);border-radius:10px;
    cursor:pointer;
    transition:background .14s,border-color .14s,box-shadow .14s,transform .04s;
    white-space:nowrap;
}
.tools-hero-search button:hover{
    background:color-mix(in srgb, var(--accent) 90%, #000);
    box-shadow:0 1px 2px rgba(0,126,66,.25),0 12px 24px -10px rgba(0,126,66,.50);
}
.tools-hero-search button:active{transform:translateY(1px)}

/* RGB-to-Hex variant: 3 inputs + button on the canonical tool-form pill */
.tool-form--rgb{max-width:820px}
.tool-form--rgb .tool-form-row{gap:6px}
.tool-form--rgb .tool-form-input{
    flex:1 1 0;min-width:0;
    padding:14px 12px;
    border-right:1px solid var(--line);
}
.tool-form--rgb .tool-form-input:last-of-type{border-right:0}
@media (max-width:640px){
    .tool-form--rgb .tool-form-row{flex-wrap:wrap}
    .tool-form--rgb .tool-form-input{flex:1 1 calc(50% - 4px);border-right:0}
}

/* RGB-to-Hex result area */
.tool-result .input-group{
    display:flex;align-items:center;gap:14px;
    padding:12px 0;border-bottom:1px solid var(--line);
}
.tool-result .input-group:last-child{border-bottom:0}
.tool-result .input-group label{
    flex:0 0 160px;
    font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);
}
.tool-result .input-group input[type="text"]{
    flex:1;min-width:0;
    padding:10px 12px;
    font-family:var(--mono, ui-monospace, "JetBrains Mono", monospace);
    font-size:14px;color:var(--ink);background:#fff;
    border:1px solid var(--line);border-radius:8px;
    transition:border-color .14s,box-shadow .14s;
}
.tool-result .input-group input[type="text"]:focus{
    border-color:var(--accent);
    box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
    outline:none;
}
.tool-result .color-preview{
    flex:1;height:48px;
    border:1px solid var(--line);border-radius:8px;
    background-color:var(--bg-2);
}
.tool-result .number-display{
    flex:1;min-width:0;
    padding:10px 12px;
    font-family:var(--mono, ui-monospace, "JetBrains Mono", monospace);
    font-size:14px;color:var(--ink);
    background:var(--bg-2);border:1px solid var(--line);border-radius:8px;
    overflow-x:auto;
}

/* ── Section wrapper (light, sits below hero) ── */
.tools-section{padding:18px 0 0;background:var(--bg-2)}
.tools-section:first-of-type{padding-top:40px}
.tools-section:last-of-type{padding-bottom:56px}
.tools-container{max-width:1180px;margin:0 auto;padding:0 24px}
.tools-container--narrow{max-width:880px}

/* Tools index — sticky chip nav under the hero */
.tools-nav-wrap{
    position:sticky;top:0;z-index:30;
    background:rgba(255,255,255,.86);
    backdrop-filter:saturate(140%) blur(12px);
    -webkit-backdrop-filter:saturate(140%) blur(12px);
    border-bottom:1px solid var(--line);
}
.tools-nav{
    max-width:1180px;margin:0 auto;padding:14px 24px;
    display:flex;gap:8px;flex-wrap:wrap;justify-content:center;
}
.tools-nav .chip{
    display:inline-flex;align-items:center;gap:6px;
    padding:7px 14px;border-radius:999px;
    font-family:var(--sans);font-size:13.5px;font-weight:500;line-height:1;
    background:#fff;border:1px solid var(--line-2);color:var(--ink);
    text-decoration:none;cursor:pointer;
    transition:border-color .14s,background .14s,color .14s,box-shadow .14s;
}
.tools-nav .chip:hover{border-color:var(--line-3);background:var(--bg-2)}
.tools-nav .chip.active{
    background:var(--accent);border-color:var(--accent);color:#fff;
    box-shadow:0 1px 2px rgba(0,126,66,.18),0 6px 16px -8px rgba(0,126,66,.40);
}

/* Category section header (uppercase rule) */
.tools-cat-h{
    display:flex;align-items:center;gap:12px;margin:0 0 20px;
    font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
    color:var(--soft);
}
.tools-cat-h::before,.tools-cat-h::after{content:'';height:1px;background:var(--line)}
.tools-cat-h::before{width:20px}
.tools-cat-h::after{flex:1}

/* Tools index — card grid */
.tools-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
    gap:16px;margin-bottom:0;
}
.tool-card{
    display:flex;flex-direction:column;gap:8px;
    padding:22px 22px 18px;
    background:#fff;border:1px solid var(--line);border-radius:14px;
    color:var(--ink);text-decoration:none;
    transition:border-color .14s,box-shadow .14s,transform .14s;
    box-shadow:0 1px 2px rgba(12,12,13,.03);
    position:relative;
}
.tool-card:hover{
    border-color:color-mix(in srgb,var(--accent) 35%,var(--line));
    box-shadow:0 1px 2px rgba(12,12,13,.04),0 18px 40px -24px rgba(12,12,13,.18);
    transform:translateY(-1px);
    text-decoration:none;
}
.tool-card:hover h4,
.tool-card:hover p,
.tool-card:hover .try-it{ text-decoration:none; }
.tool-card h4{
    margin:0;font-family:var(--sans);font-size:16px;font-weight:600;line-height:1.3;
    color:var(--ink);
}
.tool-card p{
    margin:0;font-family:var(--sans);font-size:14px;line-height:1.5;
    color:var(--soft);
}
.tool-card .try-it{
    margin-top:auto;padding-top:8px;
    display:inline-flex;align-items:center;gap:5px;
    font-size:13px;font-weight:500;color:var(--accent);
}
.tool-card .try-it::after{content:'→';transition:transform .18s}
.tool-card:hover .try-it::after{transform:translateX(3px)}

/* ── Result/output card (white tile on bg-2) ── */
.tool-result{
    background:#fff;border:1px solid var(--line);border-radius:14px;
    padding:28px 28px 22px;
    box-shadow:0 1px 2px rgba(12,12,13,.04);
    margin-bottom:28px;
}
.tool-result h2{
    margin:0 0 16px;
    font-family:var(--sans);font-size:18px;font-weight:600;line-height:1.3;
    color:var(--ink);
}
.tool-result h2:not(:first-child){margin-top:36px}

/* Cron-specific result block */
.tool-result .description{
    margin:0 0 14px;font-size:15px;color:var(--ink);
}
.tool-result .description .highlight{
    color:var(--ink);font-weight:600;
}
.tool-result .expression_result{
    font-family:var(--mono, ui-monospace, "JetBrains Mono", monospace);
    font-size:36px;font-weight:700;letter-spacing:.16em;
    color:#fff;
    background:var(--dark);
    border-radius:12px;
    padding:32px 22px;text-align:center;
    margin:0 0 18px;
}
/* Active position highlighted by cron-highlight.js when a legend label is clicked */
.tool-result .expression_result .highlight{
    display:inline-block;
    padding:2px 8px;
    border-radius:6px;
    color:#4ec97e;
    background:rgba(78,201,126,.18);
}

/* Clickable legend — one underlined link per cron field. Click highlights the
   matching position in the dark expression box above (see cron-highlight.js). */
.tool-result .legend{
    display:flex;flex-wrap:wrap;justify-content:center;
    gap:6px 32px;
    margin:0 0 14px;
    font-family:var(--sans);
    font-size:13px;color:var(--soft);
    text-align:center;
}
.tool-result .legend > div{
    cursor:pointer;
    background:transparent;border:0;padding:0;
    transition:color .14s var(--ease, ease);
}
.tool-result .legend > div:hover,
.tool-result .legend > div.selected{ color:var(--accent); }
.tool-result .legend > div:hover .label,
.tool-result .legend > div.selected .label{ color:var(--accent); }
.tool-result .legend .label{
    display:block;
    font-weight:600;color:var(--ink);font-size:14.5px;
    margin-bottom:2px;letter-spacing:0;
    text-decoration:underline;text-underline-offset:3px;
    transition:color .14s var(--ease, ease);
}

@media (max-width:780px){
    .tool-result .legend{gap:6px 18px}
    .tool-result .expression_result{font-size:28px;padding:24px 14px;letter-spacing:.10em}
}

/* ── Translator variant ──
   On the cron-translator page the English description is the answer and the cron
   expression is just an echo of the input. Invert the visual weight: description
   becomes the big dark hero block, cron expression shrinks to a quiet code echo. */
.tool-result--translator .description{
    font-family:var(--sans);
    font-size:38px;font-weight:700;line-height:1.2;letter-spacing:-0.014em;
    color:#fff;
    background:var(--dark);
    border-radius:12px;
    padding:42px 28px;text-align:center;
    margin:0 0 16px;
}
.tool-result--translator .description .highlight{
    color:#fff;
    background:transparent;
    padding:0;
}
.tool-result--translator .expression_result{
    font-size:20px;font-weight:600;letter-spacing:.10em;
    color:var(--ink);
    background:var(--bg-2);
    border:1px solid var(--line);
    padding:14px 18px;
    margin:0 0 16px;
}
.tool-result--translator .expression_result .highlight{
    display:inline-block;
    padding:1px 7px;border-radius:5px;
    color:var(--accent);
    background:color-mix(in srgb, var(--accent) 14%, transparent);
}
@media (max-width:780px){
    .tool-result--translator .description{font-size:28px;padding:32px 18px}
    .tool-result--translator .expression_result{font-size:17px;padding:12px 14px}
}

/* ── Tables (v3 styled) ── */
.tool-table{
    width:100%;border-collapse:collapse;
    font-family:var(--sans);font-size:14px;
    margin:0 0 8px;
}
.tool-table th,.tool-table td{
    padding:10px 14px;text-align:left;
    border-bottom:1px solid var(--line);
}
.tool-table th{
    background:var(--bg-2);
    font-weight:600;color:var(--ink);font-size:13px;
    letter-spacing:.01em;
}
.tool-table tbody tr:hover{background:color-mix(in srgb, var(--accent) 4%, #fff)}
.tool-table td:first-child{font-family:var(--mono, ui-monospace, monospace);color:var(--ink);font-weight:500}

/* Explanation block (long-form text below the result) */
.tool-explain{
    background:#fff;border:1px solid var(--line);border-radius:14px;
    padding:28px 32px;
    color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65;
    margin-bottom:28px;
}
.tool-explain h2,.tool-explain h3{
    font-family:var(--sans);font-weight:600;color:var(--ink);
    margin-top:1.6em;margin-bottom:.5em;line-height:1.3;
}
.tool-explain h2{font-size:20px}
.tool-explain h3{font-size:17px}
.tool-explain p{margin:0 0 1em}
.tool-explain a{color:var(--accent);text-decoration:underline}
.tool-explain a:hover{color:color-mix(in srgb, var(--accent) 80%, #000)}
.tool-explain ul,.tool-explain ol{margin:0 0 1em 1.4em}
.tool-explain code{
    font-family:var(--mono, ui-monospace, monospace);
    background:var(--bg-2);padding:1px 6px;border-radius:5px;font-size:.92em;
}
.tool-explain pre{overflow-x:auto;max-width:100%}

/* ── Dual-textarea converter card ── */
.tool-converter{
    background:#fff;border:1px solid var(--line);border-radius:14px;
    padding:24px;box-shadow:0 1px 2px rgba(12,12,13,.04);
    margin-bottom:20px;
}
.tool-converter-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.tool-converter-grid > div{display:flex;flex-direction:column;gap:6px}
.tool-converter-grid label{
    font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);
}
.tool-converter-grid textarea{
    width:100%;min-height:240px;resize:vertical;
    padding:12px 14px;
    font-family:var(--mono, ui-monospace, monospace);font-size:13.5px;line-height:1.5;
    color:var(--ink);background:#fff;
    border:1px solid var(--line-2);border-radius:9px;
    box-shadow:none;
    transition:border-color .14s,box-shadow .14s;
}
.tool-converter-grid textarea:focus{
    border-color:var(--accent);
    box-shadow:0 0 0 4px var(--accent-glow, rgba(0,126,66,.16));
    outline:none;
}
.tool-converter-action{
    margin-top:18px;text-align:center;
}
.tool-converter-action button{
    min-width:240px;
    padding:12px 22px;
    font-family:var(--sans);font-size:14.5px;font-weight:600;
    color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:10px;
    cursor:pointer;
    transition:background .14s,box-shadow .14s,transform .04s;
}
.tool-converter-action button:hover{
    background:color-mix(in srgb, var(--accent) 90%, #000);
    box-shadow:0 1px 2px rgba(0,126,66,.25),0 12px 24px -10px rgba(0,126,66,.50);
}
.tool-converter-action button:active{transform:translateY(1px)}
@media (max-width:780px){
    .tool-converter-grid{grid-template-columns:1fr}
    .tool-converter-grid textarea{min-height:180px}
}

/* ── Solutions list (cron examples link grid) ── */
.tool-link-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:8px 24px;list-style:none;padding:0;margin:0;
}
.tool-link-grid li{padding:0}
.tool-link-grid a{
    display:block;padding:10px 0;
    font-family:var(--sans);font-size:14px;color:var(--ink);
    text-decoration:none;border-bottom:1px solid var(--line);
    transition:color .14s;
}
.tool-link-grid a:hover{color:var(--accent)}

/* Mobile tweaks */
@media (max-width:780px){
    .tools-hero{padding:64px 0 22px}
    .tools-hero .hero-h{font-size:clamp(28px,7vw,40px)}
    .tools-hero-search{flex-wrap:wrap;gap:10px}
    .tools-hero-search input[type="text"]{flex:1 1 100%}
    .tools-hero-search button{flex:1 1 100%}
    .tools-section{padding:14px 0 0}
    .tools-section:first-of-type{padding-top:28px}
    .tools-section:last-of-type{padding-bottom:40px}
    .tools-grid{grid-template-columns:1fr;gap:12px;margin-bottom:0}
    .tools-nav{padding:10px 16px;gap:6px}
    .tools-nav .chip{padding:6px 11px;font-size:12.5px}
    .tool-card{padding:18px 18px 14px}
    .tool-result{padding:22px 20px 18px}
    .tool-result .expression_result{font-size:22px;padding:14px 16px}
    .tool-explain{padding:22px 20px}
    .tool-table{font-size:13px}
    .tool-table th,.tool-table td{padding:8px 10px}
    /* Narrow viewports: let wide field tables scroll inside their box instead of
       pushing horizontal overflow onto the page (e.g. the 5-field cron tables at 390px). */
    .tool-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
