/*
    Theme Name:   apps
    Theme URI:    https://editimagepdf.com
    Description:  apps main style
    Author:       FrankDev
    Author URI:   https://editimagepdf.com
    Template:     generatepress
    Version:      1.0.2
*/
/* APPS */
.apps-container {
    padding:3rem 0;
    margin:0 auto;
    display:flex;
    flex-direction: column;
}
.app-grid {
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap:2rem;
}
.panel-buttons,
.action-buttons {
    display:grid;
    grid-template-columns: repeat( auto-fit, minmax(350px, 1fr) );
    margin-top:1.5rem;
    gap:1.5rem;
}
.panel-grid .panel-buttons,
.panel-grid .action-buttons {
    gap:1rem;
}
.panel-buttons>*,
.action-buttons>* {
    flex:1;
    box-sizing: border-box;
}
.btn {
    --btn-color:#55555e;
    background-color: var(--btn-color);
    padding: 12px 15px;
    color: #fff;
    cursor: pointer;
    font-size: 1.1rem;
    font-weight: 600;
    transition: background 0.3s;
    border:none;
    display:flex;
    justify-content: center;
    align-items: center;
    gap:.75rem;
    border-radius: var(--rounded-md);
}
.btn svg {
    height:24px;
    width:24px;
    color:inherit;
}
.btn-sm {
    padding:8px 10px!important;
    font-size:0.9rem!important;
    font-weight:400!important;
}
.btn-primary,
.btn-generate {
    --btn-color:var(--accent);
}
.btn-primary:hover,
.btn-generate:hover {
    background-color: var(--accent-hover);
}
.btn-secondary {
    --btn-color: rgb(79 70 229 / .85);
}
.btn-secondary:hover {
    background-color: rgb(79 70 229 / 1);
}
.btn-download {
    --btn-color: rgb(5 150 105 / .85);
}
.btn-download:hover {
    background-color: rgb(5 150 105 / 1);
}
.btn-reset {
    --btn-color: rgb(219 39 119 / .85);
}
.btn-reset:hover {
    background-color: rgb(219 39 119 / 1);
}
.btn-clear {
    --btn-color: rgb(219 39 119 / .75);
}
.btn-clear:hover {
    background-color: rgb(219 39 119 / 1);
}
.btn-bright {
    --btn-color: rgb(111 0 254 / .15);
    color: rgb(111 0 254 / 1)!important;
}
.btn-bright:hover {
    background-color: rgb(111 0 254 / .3);
}
.btn-edit-pdf {
    --btn-color: rgb(217 119 6 / 1);
}
.btn-edit-pdf:hover {
    background-color: rgb(217 119 6 / .9);
}
button.active {
    background-color: var(--accent);
    color:#fff!important;
}
.btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
.panel-grid {
    display:grid;
    grid-template-columns: repeat( auto-fit, minmax(350px, 1fr) );
    gap:1.5rem;
    margin:0 auto;
}
.panel>* {
    position:relative;
    padding:1.5rem;
    border-radius:var(--rounded);
    border:1px solid var(--border-color);
}
.panel-title {
    font-size: 1.3rem;
    font-weight: 600;
    margin-bottom: 20px;
    display:block;
    text-align:left;
}
.upload-area {
    border: 3px dashed var(--accent);
    border-radius: var(--rounded-md);
    padding: 2rem;
    text-align: center;
    background: var(--base-2);
    transition: all 0.3s;
    cursor: pointer;
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.upload-area:hover {
    border-color: var(--accent-hover);
    background: #f0f2ff;
    transform: scale(1.02);
}
.panel-upload .upload-area {
    border-radius: var(--rounded-xl);
}
.upload-area.drag-over,
.upload-area.dragover {
    border-color:  var(--accent-hover);
    background: #e8ebff;
    transform: scale(1.02);
}
.panels svg {
    height:24px;
    width:24px;
    color:inherit;
}
.upload-icon {
    font-size: 4rem;
    margin-bottom: 15px;
    opacity:.55;
    transition: all 0.3s;
    display:flex;
    justify-content:center;
    align-items:center;
}
.upload-icon svg,
.upload-area svg {
    width:65px;
    height:65px;
    color: #667eea;
    transition: all 0.3s;
}
.upload-text {
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 8px;
}
.upload-subtext {
    font-size: 14px;
    color: #666;
    margin-top: 10px;
}
.upload-hint {
    font-size: 0.9rem;
    color: #888;
}
.file-input {
    display: none;
}
.processing {
    pointer-events: none;
}
.control-group.flex{
    display:flex;
    justify-content:space-between;
    flex-direction: column;
    align-items:center;
    gap:1rem;
    text-align:center;
}
.input-row {
    display:flex;
    align-items:center;
    gap:1rem;
}
.keep-row {
    flex-direction: row!important;
}
.keep-col {
    flex-direction: column!important;
}
.input-group {
    display:flex;
    flex-direction: column;
    gap:1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-text-overflow: ellipsis;
    white-space: nowrap;
}
.input-group>div {
    flex:1;
    width:100%;
}
.input-group label {
	text-overflow: ellipsis;
    -webkit-text-overflow: ellipsis;
    white-space: nowrap;
}
label,
.label {
	font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    display:inline-block;
    opacity:.75;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.url-input-group,
.url-input-container,
.url-input-wrapper {
    display: flex;
    gap: 1rem;
    margin-top:1rem;
    margin-bottom: 15px;
}
input.url-input {
    flex: 1;
    padding: 12px 15px;
    border: 2px solid var(--border-color);
    border-radius: 8px;
    font-size: 14px;
    transition: border-color 0.3s;
}
input.url-input:focus {
    outline: none;
    border-color: #667eea;
}
.slider-container.input-row {
    justify-content: center;
    align-items: center;
}
.input-slider {
    flex-grow:2;
}
.preview-canvas-wrapper {
    /* background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC); */
    background: 
        linear-gradient(45deg, #f0f0f0 25%, transparent 25%),
        linear-gradient(-45deg, #f0f0f0 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #f0f0f0 75%),
        linear-gradient(-45deg, transparent 75%, #f0f0f0 75%);
    background-size: 20px 20px;
    background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
    background-color: #fff;
    position: relative;
    width: 100%;
    height: 400px;
    min-height: 350px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--border-color);
    border-radius: 12px;
    cursor: grab;
    flex-direction: column;
    overflow:hidden;
}
.preview-canvas-wrapper:active,
.preview-canvas:active {
    cursor: grabbing;
}
.preview-canvas {
    position: absolute;
    top: 50%;
    left: 50%;
    transform-origin: center center;
}
.preview-canvas-0 {
    position: absolute;
    top: 0;
    left: 0;
    cursor: grab;
}
.preview-canvas-relative {
    position:relative;
    cursor: grab;
}
.no-image {
    position:absolute;
    inset:0;
    display:flex;
    justify-content:center;
    align-items:center;
    background-color:var(--base-2);
    color: #a0aec0;
    font-size: 16px;
    width:100%;
    height:100%;
    transition: all 0.3s;
    text-align:center;
}
.no-image:hover {
    background-color:#f0f2ff;
}
.dropdown {
    position: relative;
    flex: 1;
}
.dropdown-menu {
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    background: white;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    margin-bottom: 8px;
    display: none;
    overflow: hidden;
}
.dropdown-menu.show {
    display: block;
}
.dropdown-item {
    padding: 12px 16px;
    cursor: pointer;
    transition: background 0.2s;
}
.dropdown-item:hover {
    background: #f7fafc;
}
.feature-options {
    margin-bottom:2rem;
}
.file-info {
    margin: 10px 0;
    padding: 1rem;
    background: var(--base-2);
    border-radius: var(--rounded-md);
    font-size: 0.9em;
    font-size: 14px;
    color: #555;
    overflow:hidden;
}
.file-info div {
    white-space: nowrap;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    overflow: hidden;
}
.controls {
    display: flex;
    gap: 8px;
    margin: 10px auto;
    flex-wrap: wrap;
    justify-content: center;
    align-items:center;
}
.control-btn,
.btn-control {
    padding: 8px 12px;
    font-size: 16px;
    min-width: 44px;
}
.output-format {
    margin-top:1.5rem;
}
.output-format-item {
    margin-top:.5rem;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
/* TOOLTIP */
.tooltip {
	margin-left: 8px;
	width: 20px;
	height: 20px;
	background: #6c757d;
	color: white;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: bold;
	cursor: help;
	position: relative;
}
.tooltip .tooltip-text {
	visibility: hidden;
	width: 220px;
	background-color: #1f2937;
	color: #fff;
	text-align: center;
	border-radius: 6px;
	padding: 8px;
	position: absolute;
	z-index: 10;
	bottom: 125%;
	left: 50%;
	margin-left: -110px;
	opacity: 0;
	transition: opacity 0.3s;
	font-size: 0.875rem;
	font-weight: 500;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.tooltip .tooltip-text::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -5px;
	border-width: 5px;
	border-style: solid;
	border-color: #1f2937 transparent transparent transparent;
}
.tooltip:hover .tooltip-text {
	visibility: visible;
	opacity: 1;
}
/* COMPONENTS */
.checks {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}
.check {
    display: flex;
    align-items: center;
    padding: 10px 12px 0;
}
.check .icon-svg {
    width: 32px;
    height: 32px;
    display: block;
    transform: translateZ(0);
    background-color: currentColor;
    mask-image: var(--mask-image);
    -webkit-mask-image: var(--mask-image);
    mask-position: center;
    -webkit-mask-position: center;
    mask-size: contain;
    -webkit-mask-size: contain;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    color: #12d090;
    margin-right: 4px;
}
.check span {
    font-weight: 600;
}
/* PRESETS */
.hidden {
    display:none;
}
.relative {
    position:relative;
}
.flex {
    display:flex;
}
.flex-col {
    flex-direction: column;
}
.flex-row {
    flex-direction: row;
}
.border-1 {
    border:1px solid var(--border-color);
}
.border-2 {
    border:2px solid var(--border-color);
}
.rounded {
    border-radius:var(--rounded);
}
.rounded-md {
    border-radius:var(--rounded-md);
}
.w-full {
    width:100%;
}
.h-full {
    height:100%;
}
.space-y-0 {
	margin-block-start: 0;
}
.space-y-1 {
	margin-block-start:.5rem;
}
.space-y-2 {
	margin-block-start:1rem;
}
.space-y-3 {
	margin-block-start:1.5rem;
}
.space-y-4 {
	margin-block-start:2rem;
}
.mx-auto {
    margin-left: auto;
    margin-right:auto;
}
.text-center {
    text-align:center;
}
.gap-1 {
    gap: 1rem;
}
.gap-2 {
    gap: 2rem;
}
.notes {
    margin-top:2rem;
    font-size:90%;
    position: relative;
    padding: 1rem 1.5rem!important;
    border-radius: var(--rounded-md);
}
.notes.info {
    background-color: #fcfce4;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z' fill='%23ecb621'/%3E%3C/svg%3E");
}
.notes.info{
    background-position: left 1rem top 1rem;
    background-position: left clamp(1.15rem, calc(1.0648rem + -.0648vw), 1rem) top 1em;
    background-repeat: no-repeat;
    background-size: 1.25rem;
    background-size: clamp(1.35rem, calc(1.2315rem + .5185vw), 1.25rem);
    color: #3a4a68;
    padding-left: clamp(3.25rem, calc(3.1019rem + .6481vw), 3rem)!important;
}
.notes.info:before{
    content: '';
    bottom: 0;
    border-left-width: 1px;
    border-left-style: solid;
    height: calc(100% - (2.85rem + 1.25rem));
    position: absolute;
    left: clamp(1.75rem, calc(1.6759rem + .3241vw), 1.25rem);
    top: clamp(3rem, calc(2.35rem + .3241vw), 3.25rem);}
.notes.info:before {
    border-left-color: #ecb621;}

/* INFO TOOLS */
.app-footer-container {
    width:100%;
    margin: 0 auto;
    padding: 56px 48px;
    max-width: 1360px;
}
.info-tools {
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap:3rem;
}
.app-about {
    position:relative;
}
.info-tools p {
    flex:1;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
    padding-top:10px;
    text-align:center;
    border-radius:18px;
}
.other-tools {
    flex:1;
    text-align:center;
    width:100%;
    margin:0 auto;
}
.other-tools h3 {
    font-size:1.35rem;
    margin-bottom:15px;
    font-weight:600;
}
.tools-link {
    position:relative;
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap:1rem;
    text-align:center;
}

.tools-link a{
    position:relative;
    display:flex;
    justify-content: space-between;
    align-items:center;
    gap:1rem;
    background-color:#f9f7f5;
    border-radius:8px;
    padding:1rem 1.5rem;
    color:#555!important;
    font-size:16px;
    text-decoration: none;
    transition: all .3s ease-in-out;
    font-weight:600;
    
}
.tools-link a[href^="https://"]:after {
    content: '';
    background: url("data:image/svg+xml;charset=utf8,%3csvg viewBox='0 0 24 24' width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cg%3e%3cpath style='fill:%235a5a5a' d='M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z'%3e%3c/path%3e%3c/g%3e%3c/svg%3e") no-repeat;
    background-size: 16px 16px;
    width: 16px;
    height: 16px;
    display: inline-block;
    margin-left: 3px;
    vertical-align: -2px;
    border-radius:50%;
}
.tools-link a[href^="https://"]:before {
    position:absolute;
    content: '';
    background-size: 32px 32px;
    width: 32px;
    height: 32px;
    display: inline-block;
    vertical-align: -2px;
    border-radius:50%;
    background-color: rgb(111 0 254 / .15);
    top:auto;
    right:1rem;
}
.tools-link a:hover {
    box-shadow: 0px 1px 4px 0px rgba(17, 18, 54, 0.16);
    transform: translateY(-0.15rem);
}
.widget_transposh {
    margin:0 auto;
    text-align:center;
}
/* RESPONSIVE */
@media screen and (max-width: 768px) {
    .panel-buttons, .action-buttons {
        flex-direction: column;
        gap:1rem;
    }
}
@media screen and (max-width: 640px) {
    .input-row {
        flex-direction: column;
    }
    .app-footer-container {
        padding: 35px 0;
    }
}