/* Family 01 — Premium Document Power Tools (uses the site's theme variables where present). */
.f01 { --f01-border: rgba(127,127,127,.28); --f01-soft: rgba(127,127,127,.08); --f01-ok: #1f8a4c; --f01-warn: #b7791f; --f01-bad: #c0392b; }
.f01-badge { display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; padding: .25rem .6rem; border-radius: 999px; border: 1px solid var(--f01-border); background: var(--f01-soft); }
.f01-badge.is-server { border-color: #b7791f66; }
.f01-badge.is-local { border-color: #1f8a4c66; }
.f01-card { border: 1px solid var(--f01-border); border-radius: 14px; padding: 1rem 1.1rem; margin: 1rem 0; }
.f01-card h3 { font-size: 1rem; font-weight: 700; margin: 0 0 .6rem; }
.f01-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .6rem; }
.f01-kv { border: 1px solid var(--f01-border); border-radius: 10px; padding: .55rem .7rem; }
.f01-kv small { display: block; opacity: .7; font-size: .76rem; }
.f01-kv strong { font-size: 1rem; }
.f01-status { min-height: 1.3em; font-size: .9rem; margin: .5rem 0 0; }
.f01-status.is-error { color: var(--f01-bad); }
.f01-status.is-ok { color: var(--f01-ok); }
.f01-status.is-busy::before { content: ''; display: inline-block; width: .8em; height: .8em; margin-inline-end: .45em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: f01spin .8s linear infinite; vertical-align: -.1em; }
@keyframes f01spin { to { transform: rotate(360deg); } }
.f01-pro { display: none; border: 1px dashed #d97706; border-radius: 12px; padding: .7rem .9rem; margin: .6rem 0; }
.f01-pro.is-on { display: block; }
.f01-list { margin: 0; padding-inline-start: 1.2rem; }
.f01-conf { font-size: .72rem; padding: .05rem .35rem; border-radius: 6px; background: var(--f01-soft); }
.f01-conf.is-low { background: #c0392b22; color: var(--f01-bad); }
.f01-table-wrap { overflow: auto; max-height: 460px; border: 1px solid var(--f01-border); border-radius: 10px; }
.f01-table { border-collapse: collapse; width: 100%; font-size: .9rem; }
.f01-table td, .f01-table th { border: 1px solid var(--f01-border); padding: .3rem .45rem; min-width: 70px; vertical-align: top; }
.f01-table td[contenteditable="true"]:focus { outline: 2px solid #2563eb; outline-offset: -2px; }
.f01-table td.is-review { background: #c0392b14; }
.f01-table td.is-selected { box-shadow: inset 0 0 0 2px #2563eb; }
.f01-toolbar { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0; }
.f01-toolbar .btn { font-size: .82rem; }
.f01-compare { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.f01-compare canvas, .f01-stage canvas { width: 100%; height: auto; border: 1px solid var(--f01-border); border-radius: 10px; background: #fff; }
.f01-stage { position: relative; touch-action: none; }
.f01-handle { position: absolute; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; border: 2px solid #fff; background: #2563eb; box-shadow: 0 0 0 2px #2563eb88; cursor: grab; touch-action: none; }
.f01-steps { list-style: none; padding: 0; margin: 0; }
.f01-steps li { border: 1px solid var(--f01-border); border-radius: 10px; padding: .55rem .7rem; margin-bottom: .45rem; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.f01-steps li .f01-step-n { font-weight: 700; min-width: 1.6rem; }
.f01-progress { height: 8px; background: var(--f01-soft); border-radius: 99px; overflow: hidden; margin: .4rem 0; }
.f01-progress > span { display: block; height: 100%; width: 0; background: #2563eb; transition: width .2s; }
.f01-info h3 { font-size: 1rem; margin-top: 1rem; }
@media (max-width: 640px) { .f01-compare { grid-template-columns: 1fr; } }
