@charset "UTF-8";
/* ============================================================================
   EZTul - Shared Tool Stylesheet  (global_tool.css)
   ----------------------------------------------------------------------------
   Loaded on every TOOL page (not the homepage/about) right after
   global_styles.css. It provides:
     1. Design tokens (colors, radius, shadow, spacing, font)
     2. Shared UI primitives (page header, cards, buttons, fields, toggle,
        toast, privacy banner)
     3. A one-shot normalization of the "Your Privacy Protected" box so every
        tool's banner looks the same and adapts to dark mode.

   DARK MODE RULE (important):
     Dark mode is driven ONLY by the site toggle. The toggle adds
     `body.dark-mode` AND live-updates the --*-color variables set in each
     tool's header.php. NEVER use @media (prefers-color-scheme) in tool CSS -
     it ignores the site toggle. Build tool colors on the variables below.
   ============================================================================ */

:root {
    /* Brand + status accents */
    --tool-accent:          #4CAF50;
    --tool-accent-hover:    #45a049;
    --tool-danger:          #dc3545;
    --tool-danger-hover:    #c82333;
    --tool-success:         #28a745;
    --tool-success-hover:   #218838;
    --tool-info:            #17a2b8;
    --tool-info-hover:      #138496;
    --tool-muted:           #6c757d;

    /* Shape + motion */
    --tool-radius:          8px;
    --tool-radius-sm:       4px;
    --tool-shadow:          0 2px 5px rgba(0, 0, 0, 0.10);
    --tool-shadow-lg:       0 4px 12px rgba(0, 0, 0, 0.15);
    --tool-transition:      all 0.2s ease;

    /* Spacing + layout */
    --tool-gap:             20px;
    --tool-pad:             20px;
    --tool-max-width:       1000px;

    /* Typography */
    --tool-font:            'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* Shadows need more contrast on a dark background */
body.dark-mode {
    --tool-shadow:      0 2px 5px rgba(0, 0, 0, 0.45);
    --tool-shadow-lg:   0 4px 12px rgba(0, 0, 0, 0.55);
}

/* ---------------------------------------------------------------------------
   Base page  (gentle defaults - a tool's own styles.css can still override)
   --------------------------------------------------------------------------- */
body {
    font-family: var(--tool-font);
    margin: 0;
    padding: 0;
    padding-top: 44px;                 /* clears the 30px fixed header bar */
    background-color: var(--bg-color);
    color: var(--font-color);
    line-height: 1.5;
}

.main-container {
    max-width: var(--tool-max-width);
    margin: 0 auto;
    padding: 0 20px 40px;
    box-sizing: border-box;
}
.main-container.wide   { max-width: 1200px; }
.main-container.narrow { max-width: 720px; }

/* ---------------------------------------------------------------------------
   Page title  -  standard h1 block for every tool
   Usage:
     <div class="tool-page-header">
       <h1>Tool Name</h1>
       <p>One-line description.</p>
     </div>
   --------------------------------------------------------------------------- */
.tool-page-header {
    text-align: center;
    padding: 18px 20px 4px;
    color: var(--font-color);
}
.tool-page-header h1 {
    margin: 0 0 8px;
    font-size: 28px;
    font-weight: 700;
}
.tool-page-header p {
    margin: 0 auto;
    max-width: 700px;
    font-size: 16px;
    opacity: 0.85;
}

/* ---------------------------------------------------------------------------
   Surfaces
   --------------------------------------------------------------------------- */
.tool-card {
    background: var(--content-bg-color);
    border: 1px solid var(--border-color);
    border-radius: var(--tool-radius);
    box-shadow: var(--tool-shadow);
    padding: var(--tool-pad);
    margin-bottom: var(--tool-gap);
}
.tool-card__title {
    margin: 0 0 15px;
    font-size: 1.25rem;
    color: var(--font-color);
}

/* A muted inner panel for grouping controls inside a card */
.tool-panel {
    background: var(--alt-content-bg-color);
    border: 1px solid var(--border-color);
    border-radius: var(--tool-radius);
    padding: var(--tool-pad);
}

/* ---------------------------------------------------------------------------
   Buttons  -  <button class="btn btn-primary">Label</button>
   Variants: btn-primary / btn-success / btn-danger / btn-info / btn-secondary
   Modifiers: btn-sm / btn-block
   --------------------------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.2;
    padding: 10px 20px;
    border: none;
    border-radius: var(--tool-radius);
    background: var(--tool-muted);
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    transition: var(--tool-transition);
}
.btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: var(--tool-shadow); }
.btn:disabled            { opacity: 0.6; cursor: not-allowed; }
.btn:focus-visible       { outline: 2px solid var(--tool-accent); outline-offset: 2px; }

.btn-primary   { background: var(--tool-accent); }
.btn-primary:hover:not(:disabled)   { background: var(--tool-accent-hover); }
.btn-success   { background: var(--tool-success); }
.btn-success:hover:not(:disabled)   { background: var(--tool-success-hover); }
.btn-danger    { background: var(--tool-danger); }
.btn-danger:hover:not(:disabled)    { background: var(--tool-danger-hover); }
.btn-info      { background: var(--tool-info); }
.btn-info:hover:not(:disabled)      { background: var(--tool-info-hover); }
.btn-secondary { background: var(--alt-content-bg-color); color: var(--font-color); border: 1px solid var(--border-color); }
.btn-secondary:hover:not(:disabled) { background: var(--content-bg-color); }

.btn-sm    { padding: 6px 12px; font-size: 0.9rem; }
.btn-block { width: 100%; }

/* ---------------------------------------------------------------------------
   Form fields  -  wrap label + control in .tool-field, or add .tool-input /
   .tool-select / .tool-textarea to a control directly.
   --------------------------------------------------------------------------- */
.tool-field { display: flex; flex-direction: column; gap: 6px; }
.tool-field > label { font-weight: 600; font-size: 0.9rem; color: var(--font-color); }

.tool-input, .tool-select, .tool-textarea,
.tool-field input, .tool-field select, .tool-field textarea {
    padding: 10px 12px;
    font-size: 1rem;
    font-family: inherit;
    color: var(--font-color);
    background: var(--bg-color);
    border: 1px solid var(--border-color);
    border-radius: var(--tool-radius-sm);
    transition: var(--tool-transition);
}
.tool-input:focus, .tool-select:focus, .tool-textarea:focus,
.tool-field input:focus, .tool-field select:focus, .tool-field textarea:focus {
    outline: none;
    border-color: var(--tool-accent);
    box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.25);
}
.tool-textarea { resize: vertical; min-height: 100px; }

/* ---------------------------------------------------------------------------
   Toggle switch  -
     <label class="tool-toggle">
       <input type="checkbox"><span class="tool-toggle__slider"></span>
     </label>
   --------------------------------------------------------------------------- */
.tool-toggle { position: relative; display: inline-block; width: 50px; height: 26px; }
.tool-toggle input { opacity: 0; width: 0; height: 0; }
.tool-toggle__slider {
    position: absolute; inset: 0; cursor: pointer;
    background: var(--border-color); border-radius: 26px; transition: 0.3s;
}
.tool-toggle__slider:before {
    content: ""; position: absolute; height: 20px; width: 20px; left: 3px; bottom: 3px;
    background: #fff; border-radius: 50%; transition: 0.3s;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.tool-toggle input:checked + .tool-toggle__slider { background: var(--tool-accent); }
.tool-toggle input:checked + .tool-toggle__slider:before { transform: translateX(24px); }

/* ---------------------------------------------------------------------------
   Toast  -  <div id="toolToast" class="tool-toast">Done</div>
   Show with .show, error styling with .error (toggle via JS).
   --------------------------------------------------------------------------- */
.tool-toast {
    position: fixed; top: 46px; left: 50%; transform: translateX(-50%);
    background: var(--tool-success); color: #fff;
    padding: 12px 20px; border-radius: var(--tool-radius);
    box-shadow: var(--tool-shadow-lg); z-index: 100000; font-size: 0.95rem;
    opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;
}
.tool-toast.show  { opacity: 1; visibility: visible; }
.tool-toast.error { background: var(--tool-danger); }

/* ---------------------------------------------------------------------------
   "Your Privacy Protected" banner
   ----------------------------------------------------------------------------
   Markup:
     <div class="tool-privacy">
       <span class="icon">🔒</span>
       <p><strong>Your Privacy Protected</strong> - everything runs locally in
          your browser; files you add never leave your device.</p>
     </div>
   --------------------------------------------------------------------------- */
.tool-privacy {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--alt-content-bg-color);
    border: none;
    border-left: 4px solid var(--tool-accent);
    border-radius: var(--tool-radius-sm);
    padding: 10px 14px;
    margin: 0 0 18px;
    box-shadow: none;
    color: var(--font-color);
    font-size: 0.9rem;
    line-height: 1.4;
}

.tool-privacy .icon {
    flex: 0 0 auto;
    margin: 0;
    font-size: 20px;
    line-height: 1;
    color: var(--tool-accent);
}

.tool-privacy p { margin: 0; }
.tool-privacy strong { font-weight: 700; }

/* ---------------------------------------------------------------------------
   Shared scrollbar styling (WebKit)
   --------------------------------------------------------------------------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--content-bg-color); border-radius: 10px; }
::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--tool-muted); }

/* ---------------------------------------------------------------------------
   Small-screen tweaks
   --------------------------------------------------------------------------- */
@media (max-width: 768px) {
    .tool-page-header h1 { font-size: 23px; }
    .tool-page-header p  { font-size: 15px; }
}
-