/*
 * arabic-tools.com — text-cleaner
 *
 * BUILT FILE. Do not edit here.
 * Source: .claude/arabic-tools/port/, rebuild with build.sh text-cleaner
 */



/* ==========================================================
   tool.css — text-cleaner
   ========================================================== */

/* ────────────────────────────────────────────────────────────────
   TOOL — Arabic Text Cleaner

   Only what the ported tools' shared chrome does not already give.
   The two-column split collapses on a phone, and both textareas are
   forced to an Arabic face because the site's body font has no Arabic
   coverage and would otherwise fall through to a system fallback that
   renders the harakat badly — which matters here, since judging the
   harakat is the point of the tool.

   Version log
   1.0.0  2026-08-08  Initial.
   ──────────────────────────────────────────────────────────────── */

.at-cleaner__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    align-items: start;
}

@media ( max-width: 860px ) {
    .at-cleaner__grid { grid-template-columns: 1fr; }
}

.at-cleaner textarea {
    width: 100%;
    font-family: var( --at-font-ar, 'Noto Sans Arabic', sans-serif ) !important;
    font-size: 1.15rem !important;
    line-height: 2.1 !important;
    resize: vertical;
}

/* The output is derived, not typed. Tinting it says so without
   needing a label, and keeps it distinguishable when the two boxes
   sit one above the other on a phone. */
.at-cleaner textarea[ readonly ] {
    background: var( --at-paper, #FBF9F6 ) !important;
}

.at-cleaner__opts h3 {
    margin: 0 0 6px;
    font: 700 15px/1.3 var( --at-font, 'Inter', system-ui, sans-serif );
    color: var( --at-ink, #4A4661 );
}

.at-cleaner__opts h3:not( :first-child ) {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var( --at-line, #E9E5F1 );
}

.at-cleaner__opts .at-field { margin-top: 12px; }

/* The variant toggles show the letters they act on, so they need the
   Arabic face too — at this size the default stack renders ة and ه
   almost identically. */
.at-cleaner__opts .at-check span {
    font-family: var( --at-font-ar, 'Noto Sans Arabic', sans-serif );
    font-size: 1rem;
}

/* ── PDF import ──────────────────────────────────────────────────
   Sits above the two-column split, because importing is what a
   visitor does first when they have a file, and pasting is what they
   do when they do not.

   Version log
   1.1.0  2026-08-11  PDF import card, and its locked state.
   ──────────────────────────────────────────────────────────────── */

.at-cleaner__pdf {
    margin-bottom: 22px;
    padding: 18px 20px;
    border: 1px solid rgba( 0, 0, 0, .1 );
    border-radius: 12px;
    background: rgba( 0, 0, 0, .015 ) !important;
}

.at-cleaner__pdf > h3 {
    margin: 0 0 6px;
    font-size: 1.05rem;
    text-transform: none !important;
}

.at-cleaner__drop {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 14px;
    padding: 30px 20px;
    border: 2px dashed rgba( 0, 0, 0, .2 );
    border-radius: 10px;
    text-align: center;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.at-cleaner__drop:hover,
.at-cleaner__drop.is-over {
    border-color: rgba( 79, 70, 229, .6 );
    background: rgba( 79, 70, 229, .05 ) !important;
}

.at-cleaner__drop > strong { font-size: 1.1rem; }
.at-cleaner__drop > span { font-size: .85rem; opacity: .65; }

.at-cleaner__pdfstatus {
    margin: 12px 0 0;
    font-size: .85rem;
    line-height: 1.5;
    min-height: 1.2em;
}

.at-cleaner__pdfstatus.is-bad  { color: #b91c1c; }
.at-cleaner__pdfstatus.is-good { color: #15803d; }

.at-cleaner__pdf.is-locked .at-cleaner__locked {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 14px;
    padding: 16px 18px;
    border: 1px dashed rgba( 0, 0, 0, .2 );
    border-radius: 10px;
    font-size: .9rem;
}

@media print {
    .at-cleaner__pdf { display: none !important; }
}
