/* Floopy SKP Free — visor gratuito. Identidad SKP: naranja #ff6900. */
.floopy-skf{
	--skf-primary:#ff6900;
	--skf-primary-dark:#d55800;
	--skf-bg:#fafafa;
	--skf-border:#e2e2e2;
	--skf-text:#1a1a1a;
	--skf-muted:#6b7280;
	margin:0 auto;font-family:inherit;color:var(--skf-text);
}
.floopy-skf *{box-sizing:border-box}

/* El Autodesk Viewer maqueta su UI (toolbar, docks, gizmos) asumiendo el
   box-sizing por defecto del navegador (content-box). Nuestro reset global a
   border-box se colaba en su subárbol y le CORTABA/deformaba la caja de
   herramientas. Restauramos content-box en todo lo que hay dentro del canvas
   del viewer para no tocar su layout interno. */
.floopy-skf__canvas,
.floopy-skf__canvas *,
.floopy-skf__canvas *::before,
.floopy-skf__canvas *::after{box-sizing:content-box}

/* El visor ocupa todo el ancho del contenedor (como el visor de pago);
   las tarjetas (uploader, progreso, gate, error, handoff) se centran a 960px. */
.floopy-skf__uploader,.floopy-skf__progress,.floopy-skf__gate,
.floopy-skf__error,.floopy-skf__handoff{max-width:960px;margin-left:auto;margin-right:auto}

/* Uploader */
.floopy-skf__drop{
	border:2px dashed var(--skf-border);border-radius:14px;background:var(--skf-bg);
	padding:48px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;
	color:var(--skf-muted);
}
.floopy-skf__drop:hover,.floopy-skf__drop.is-dragover{border-color:var(--skf-primary);background:rgba(255,105,0,.05);color:var(--skf-primary)}
.floopy-skf__drop svg{color:var(--skf-primary);margin-bottom:12px}
.floopy-skf__drop-text{font-size:16px;font-weight:600;margin:0 0 6px;color:var(--skf-text)}
.floopy-skf__hint{font-size:13px;margin:0}

/* Progreso */
.floopy-skf__progress{text-align:center;padding:40px 24px}
.floopy-skf__spinner{
	width:44px;height:44px;margin:0 auto 16px;border-radius:50%;
	border:4px solid var(--skf-border);border-top-color:var(--skf-primary);
	animation:skf-spin 1s linear infinite;
}
@keyframes skf-spin{to{transform:rotate(360deg)}}
.floopy-skf__status{font-size:15px;font-weight:600;margin:0 0 14px}
.floopy-skf__bar{height:6px;border-radius:99px;background:var(--skf-border);overflow:hidden;max-width:320px;margin:0 auto}
.floopy-skf__bar-fill{height:100%;width:0;background:var(--skf-primary);transition:width .3s}

/* Visor — stage clonado del visor de pago (floopy-aps-viewer):
   75vh, mínimo 500px, fondo #1a1a1a, canvas absoluto, watermark chip. */
.floopy-skf__stage{
	position:relative;width:100%;height:75vh;min-height:500px;
	background:#1a1a1a;border-radius:12px;overflow:hidden;margin:0 0 14px;
}
.floopy-skf__canvas{position:absolute;inset:0}
.floopy-skf__watermark{
	position:absolute;bottom:12px;right:16px;padding:4px 10px;
	background:rgba(0,0,0,.55);color:#fff;font-size:11px;font-weight:500;
	font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
	border-radius:4px;letter-spacing:.02em;pointer-events:none;z-index:10;
	backdrop-filter:blur(4px);
}
/* Selector de demos dentro del stage (esquina superior-izquierda) */
.floopy-skf__demobar{position:absolute;top:14px;left:14px;z-index:10}
.floopy-skf__demobar select{
	appearance:auto;background:#fff;color:var(--skf-text);border:1px solid #ddd;
	border-radius:8px;padding:8px 12px;font-size:14px;font-weight:600;
	box-shadow:0 2px 8px rgba(0,0,0,.12);cursor:pointer;max-width:260px;
}
.floopy-skf__demobar select:focus{outline:2px solid var(--skf-primary);outline-offset:1px}

/* Badge demo (esquina inferior-izquierda), estilo brand stamp del visor de pago */
.floopy-skf__demobadge{
	position:absolute;bottom:10px;left:12px;z-index:10;padding:3px 8px;
	background:rgba(255,255,255,.75);color:#6c7a89;font-size:10px;font-weight:600;
	font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
	text-transform:uppercase;letter-spacing:.08em;border:1px solid rgba(0,0,0,.06);
	border-radius:4px;pointer-events:none;
}

/* Botón "Ver demo" dentro de la drop zone */
.floopy-skf__demo-btn{margin-top:14px}

/* Banner en modo demo (box inferior, como el visor de pago) */
.floopy-skf__demo-banner{
	display:flex;align-items:center;justify-content:space-between;gap:16px;
	flex-wrap:wrap;margin-top:14px;padding:14px 18px;background:#fff;
	border:1px solid var(--skf-border);border-radius:12px;
}
.floopy-skf__demo-banner-text{font-size:15px;font-weight:500;color:var(--skf-text)}

.floopy-skf__toolbar{display:flex;gap:10px;justify-content:center;margin-top:14px;flex-wrap:wrap}
.floopy-skf__btn{
	background:var(--skf-primary);color:#fff;border:1px solid var(--skf-primary);
	border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;
}
.floopy-skf__btn:hover{background:var(--skf-primary-dark);border-color:var(--skf-primary-dark)}
.floopy-skf__btn--ghost{background:transparent;color:var(--skf-primary)}
.floopy-skf__btn--ghost:hover{background:rgba(255,105,0,.08)}
.floopy-skf__btn--small{padding:5px 12px;font-size:13px}

@media(max-width:768px){
	.floopy-skf__stage{height:60vh;min-height:360px}
}

/* My files ([floopy-skp-free_my_files]) */
.floopy-skf-myfiles{max-width:960px}
.floopy-skf-myfiles__usage{background:var(--skf-bg);border:1px solid var(--skf-border);border-radius:14px;padding:20px 24px;margin-bottom:24px}
.floopy-skf-myfiles__usage h3{margin:0 0 14px;font-size:17px;color:var(--skf-text)}
.floopy-skf-myfiles__usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:16px}
.floopy-skf-myfiles__usage-item{display:flex;flex-direction:column;gap:5px}
.floopy-skf-myfiles__usage-label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--skf-muted)}
.floopy-skf-myfiles__usage-count{font-size:15px;color:var(--skf-text)}
.floopy-skf-myfiles__usage-bar{height:8px;border-radius:99px;background:var(--skf-border);overflow:hidden}
.floopy-skf-myfiles__usage-fill{height:100%;background:#00a35c;transition:width .3s}
.floopy-skf-myfiles__usage-fill.is-warn{background:#dba617}
.floopy-skf-myfiles__usage-fill.is-full{background:#d63638}
.floopy-skf-myfiles__usage-actions{display:flex;gap:10px;flex-wrap:wrap}
.floopy-skf-myfiles__usage-actions .floopy-skf__btn{text-decoration:none;display:inline-block}
.floopy-skf-myfiles__title{font-size:17px;margin:0 0 12px;color:var(--skf-text)}
.floopy-skf-myfiles__empty{color:var(--skf-muted)}
.floopy-skf-myfiles__empty a{color:var(--skf-primary);font-weight:600}
.floopy-skf-myfiles__tablewrap{overflow-x:auto}
.floopy-skf-myfiles__table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--skf-border);border-radius:12px;overflow:hidden;font-size:14px}
.floopy-skf-myfiles__table th{background:var(--skf-bg);color:var(--skf-muted);text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:10px 14px}
.floopy-skf-myfiles__table td{padding:10px 14px;border-top:1px solid var(--skf-border);color:var(--skf-text)}
.floopy-skf-myfiles__name{font-weight:600;word-break:break-all}
.floopy-skf-myfiles__actions{display:flex;gap:6px;flex-wrap:wrap}
.floopy-skf-myfiles__actions .floopy-skf__btn{text-decoration:none}

/* Error */
.floopy-skf__error{text-align:center;padding:32px 24px;color:#b91c1c}
.floopy-skf__error p{font-weight:600;margin:0 0 14px}

/* Upload box compacto ([floopy_upload_box], hero del home) */
.floopy-skf-box{max-width:520px}
.floopy-skf-box__card{
	border:2px dashed var(--skf-border);border-radius:14px;background:#fff;
	padding:32px 28px;text-align:center;transition:border-color .15s,background .15s;
}
.floopy-skf-box__card.is-dragover{border-color:var(--skf-primary);background:rgba(255,105,0,.05)}
.floopy-skf-box__title{margin:0 0 8px;font-size:20px;font-weight:700;color:var(--skf-text)}
.floopy-skf-box__hint{margin:0 0 18px;font-size:13px;color:var(--skf-muted)}
.floopy-skf-box__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.floopy-skf-box__actions .floopy-skf__btn{text-decoration:none;display:inline-block}
.floopy-skf-box__formats{margin:16px 0 0;font-size:11px;letter-spacing:.12em;color:var(--skf-muted);text-transform:uppercase}
.floopy-skf-box .floopy-skf__spinner{margin-bottom:12px}

/* Gate (cuenta requerida / límite) y handoff de pago */
.floopy-skf__gate,.floopy-skf__handoff{
	text-align:center;padding:40px 24px;border:1px solid var(--skf-border);
	border-radius:14px;background:var(--skf-bg);
}
.floopy-skf__gate p,.floopy-skf__handoff p{font-size:15px;color:var(--skf-text);margin:0 0 16px}
.floopy-skf__handoff h3{margin:0 0 8px;font-size:20px}
.floopy-skf__gate .floopy-skf__btn,.floopy-skf__handoff .floopy-skf__btn{display:inline-block;text-decoration:none;margin:4px}
