.tool-hero{padding-block:var(--s-8) var(--s-6)}.tool-hero .badge{margin-bottom:var(--s-4)}.tool-hero h1{margin-bottom:var(--s-3)}.tool-hero .lede{max-width:64ch}.tool-app{margin-top:var(--s-2)}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);align-items:start}@media (max-width:860px){.tool-grid{grid-template-columns:1fr}}.tool-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-1)}.tool-panel h2{font-size:var(--fs-lg);margin-bottom:var(--s-2)}.tool-panel .panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4)}.tool-panel .panel-head h2{margin-bottom:0}.panel-hint{font-size:var(--fs-sm);color:var(--text-mute)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:var(--s-7) var(--s-5);text-align:center;cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);background:var(--bg-sunken)}.dropzone:hover,.dropzone:focus-visible{border-color:var(--signal);background:var(--grad-soft)}.dropzone[data-drag="true"]{border-color:var(--signal);background:var(--grad-soft);transform:translateY(-1px)}.dropzone .dz-icon{width:54px;height:54px;border-radius:var(--r-lg);margin:0 auto var(--s-3);display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--signal-deep)}:root[data-theme="dark"] .dropzone .dz-icon{color:var(--signal)}.dropzone .dz-icon svg{width:26px;height:26px}.dropzone h3{font-size:var(--fs-base);margin-bottom:var(--s-1)}.dropzone p{font-size:var(--fs-sm);color:var(--text-soft)}.dropzone .dz-formats{margin-top:var(--s-3);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-mute);word-break:break-word}.dropzone input[type="file"]{display:none}.io-area{width:100%;min-height:150px;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.6;color:var(--text);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4);word-break:break-all}.io-area:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px var(--grad-soft)}.io-area[readonly]{color:var(--text-soft)}.io-area.is-mono-wrap{word-break:break-all;white-space:pre-wrap}.output-block{position:relative}.output-empty{display:grid;place-items:center;min-height:150px;text-align:center;border:1px dashed var(--border);border-radius:var(--r-md);background:var(--bg-sunken);color:var(--text-mute);font-size:var(--fs-sm);padding:var(--s-5)}.btn-row{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-4)}.btn-row .btn{flex:0 0 auto}.btn-sm{padding:.5rem .85rem;font-size:var(--fs-sm);border-radius:var(--r-md)}.btn-icon svg{width:16px;height:16px}.preview-wrap{margin-top:var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:repeating-conic-gradient(var(--bg-sunken) 0% 25%,var(--surface) 0% 50%) 50%/22px 22px;padding:var(--s-4);display:grid;place-items:center;min-height:140px;overflow:hidden}.preview-wrap img{max-width:100%;max-height:340px;border-radius:var(--r-sm);display:block}.meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-2) var(--s-4);margin-top:var(--s-4)}@media (max-width:520px){.meta-grid{grid-template-columns:1fr}}.meta-item{display:flex;flex-direction:column;gap:.15rem;padding:var(--s-3);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md)}.meta-item dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-mute)}.meta-item dd{font-size:var(--fs-sm);font-family:var(--font-mono);color:var(--text);word-break:break-word}.progress{height:6px;border-radius:var(--r-pill);background:var(--bg-sunken);overflow:hidden;margin-top:var(--s-4)}.progress span{display:block;height:100%;width:0;background:var(--grad);transition:width var(--t-fast) linear}.progress[hidden]{display:none}.tool-msg{display:flex;gap:var(--s-2);align-items:flex-start;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--fs-sm);margin-top:var(--s-4);border:1px solid var(--border);background:var(--bg-sunken);color:var(--text-soft)}.tool-msg svg{width:18px;height:18px;flex:none;margin-top:1px}.tool-msg[hidden]{display:none}.tool-msg.is-error{border-color:#e1566b;background:rgba(225,86,107,.1);color:#c2304a}:root[data-theme="dark"] .tool-msg.is-error{color:#ff8ba0}.tool-msg.is-success{border-color:var(--signal-deep);background:var(--grad-soft);color:var(--signal-deep)}:root[data-theme="dark"] .tool-msg.is-success{color:var(--signal)}.tool-msg.is-warn{border-color:#d99a2b;background:rgba(217,154,43,.12);color:#a9730f}:root[data-theme="dark"] .tool-msg.is-warn{color:#f0b450}.verdict{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-5);border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-sunken);margin-bottom:var(--s-4)}.verdict .v-icon{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex:none}.verdict .v-icon svg{width:24px;height:24px}.verdict h3{font-size:var(--fs-lg);margin-bottom:.1rem}.verdict p{font-size:var(--fs-sm);color:var(--text-soft)}.verdict.ok{border-color:var(--signal-deep)}.verdict.ok .v-icon{background:var(--grad-soft);color:var(--signal-deep)}:root[data-theme="dark"] .verdict.ok .v-icon{color:var(--signal)}.verdict.bad{border-color:#e1566b}.verdict.bad .v-icon{background:rgba(225,86,107,.12);color:#c2304a}:root[data-theme="dark"] .verdict.bad .v-icon{color:#ff8ba0}.check-list{display:flex;flex-direction:column;gap:.5rem}.check-list li{display:flex;gap:var(--s-2);align-items:flex-start;font-size:var(--fs-sm);color:var(--text-soft)}.check-list li svg{width:17px;height:17px;flex:none;margin-top:2px}.check-list li.pass svg{color:var(--signal-deep)}:root[data-theme="dark"] .check-list li.pass svg{color:var(--signal)}.check-list li.fail svg{color:#c2304a}:root[data-theme="dark"] .check-list li.fail svg{color:#ff8ba0}.check-list li.warn svg{color:#a9730f}:root[data-theme="dark"] .check-list li.warn svg{color:#f0b450}.seg{display:inline-flex;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px}.seg button{border:0;background:transparent;color:var(--text-soft);cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:500;padding:.4rem .9rem;border-radius:var(--r-pill);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.seg button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:var(--sh-1)}.opt-row{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:center;margin-bottom:var(--s-4)}.opt-row label{font-size:var(--fs-sm);color:var(--text-soft);display:inline-flex;align-items:center;gap:.4rem}.kbd{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--bg-sunken);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:6px;padding:.1rem .4rem;color:var(--text-soft)}.shortcut-note{margin-top:var(--s-4);font-size:var(--fs-xs);color:var(--text-mute)}.shortcut-note .kbd{margin-inline:.15rem}.tool-related{margin-top:var(--s-9)}.tool-related h2{margin-bottom:var(--s-5)}.tool-cat-group{margin-top:var(--s-8)}.tool-cat-group:first-of-type{margin-top:var(--s-6)}.tool-cat-head{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.tool-cat-head .tc-icon{width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--grad-soft);color:var(--signal-deep);flex:none}:root[data-theme="dark"] .tool-cat-head .tc-icon{color:var(--signal)}.tool-cat-head .tc-icon svg{width:20px;height:20px}.tool-cat-head h2{font-size:var(--fs-xl);margin:0}.tool-card-link{display:flex;flex-direction:column;height:100%}.tool-card-link .tcl-top{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2)}.tool-card-link .tcl-badge{font-size:var(--fs-xs);font-weight:600;color:var(--signal-deep);background:var(--grad-soft);padding:.15rem .5rem;border-radius:var(--r-pill)}:root[data-theme="dark"] .tool-card-link .tcl-badge{color:var(--signal)}.tool-card-link .cat-link{margin-top:auto;padding-top:var(--s-3)}.tool-panel .field:last-child{margin-bottom:0}.tool-card-link{position:relative;border-radius:var(--r-lg);padding:var(--s-5);transition:transform var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease),border-color var(--t-med) var(--ease)}.tool-card-link .card-icon{transition:transform var(--t-med) var(--ease)}.tool-card-link p{flex:1 1 auto;color:var(--text-soft)}.tool-card-link .tcl-top{margin-bottom:var(--s-2)}.tool-card-link .tcl-top h3{font-size:var(--fs-lg);line-height:var(--lh-snug)}.tool-card-link .tcl-badge{flex:none;font-size:var(--fs-xs);font-weight:600;color:var(--signal-deep);background:var(--grad-soft);padding:.18rem .55rem;border-radius:var(--r-pill);white-space:nowrap}:root[data-theme="dark"] .tool-card-link .tcl-badge{color:var(--signal)}.tcl-cta{margin-top:var(--s-4);align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);font-weight:600;color:#fff;padding:.5rem 1rem;border-radius:var(--r-md);background:linear-gradient(135deg,var(--signal-deep),#6366f1);box-shadow:0 1px 2px rgba(16,23,48,.12);transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),filter var(--t-fast) var(--ease)}.tcl-cta::after{content:"→";font-weight:700;transition:transform var(--t-fast) var(--ease)}.tool-card-link:hover{transform:translateY(-4px);box-shadow:var(--sh-3),0 0 0 1px rgba(99,102,241,.18);border-color:var(--signal)}.tool-card-link:hover .card-icon{transform:scale(1.06)}.tool-card-link:hover .tcl-cta{filter:brightness(1.06);box-shadow:0 6px 16px rgba(99,102,241,.32)}.tool-card-link:hover .tcl-cta::after{transform:translateX(3px)}.tool-card-link:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.tool-card-link:focus-visible .tcl-cta{box-shadow:0 6px 16px rgba(99,102,241,.32)}@media (prefers-reduced-motion:reduce){.tool-card-link,.tool-card-link .card-icon,.tcl-cta,.tcl-cta::after{transition:none}.tool-card-link:hover{transform:none}}